Autor Zpráva
S3RIO2
Profil
Ahoj,

prosím o radu.., mám tu část kódu, který je funkční. Ovšem tento kód bych potřeboval rozšířit o další hodnoty. Když tomu tak udělám, kód je nefunkční a za boha nemohu přijít, kde dělám chybu. Ono asi bude taky problém, že pořádně nerozumím příkazu který mám používat.

Funkční kód:

if ($stmt = $mysqli_Conn->prepare("INSERT INTO coins(`name`,`price_usd`,`timestamp`) VALUES (?,?,?) ON DUPLICATE KEY UPDATE price_usd=?,timestamp=?")) {
$stmt->bind_param("sdidi", $coinValue['symbol'], $coinValue['price_usd'], time(), $coinValue['price_usd'],time());




Nefunkční po úpravě:

if ($stmt = $mysqli_Conn->prepare("INSERT INTO coins(`id`,`name`,`symbol`,`rank`,`price_usd`,`price_btc`,`24h_volume_usd`,`market_cap_usd`,`available_supply`,`total_supply`,`percent_change_1h`,`percent_change_24h`,`percent_change_7d`,`timestamp`) VALUES (?,?,?) ON DUPLICATE KEY UPDATE rank=?,price_usd=?,price_btc=?,24h_volume_usd=?,market_cap_usd=?,available_supply=?,total_supply=?,percent_change_1h=?,percent_change_24h=?,percent_change_7d=?,timestamp=?")) {

$stmt->bind_param($coinValue['id'], $coinValue['name'], $coinValue['symbol'], $coinValue['rank'], $coinValue['price_usd'], $coinValue['price_btc'], $coinValue['24_volume_usd'], $coinValue['market_cap_usd'], $coinValue['available_supply'], $coinValue['total_supply'], $coinValue['percent_change_1h'], $coinValue['percent_change_24h'], $coinValue['percent_change_7d'], time(), $coinValue['rank'],$coinValue['price_usd'],$coinValue['price_btc'],$coinValue['24_volume_usd'],$coinValue['market_cap_usd'],$coinValue['available_supply'],$coinValue['total_supply'],$coinValue['percent_change_1h'],$coinValue['percent_change_24h'],$coinValue['percent_change_7d'], time()

Pokud si data nechám jen vypsat z parseru, tak vše vypíše. Takže dělám chybu někde v tom sql příkazu.
juriad
Profil
Ty v INSERTU vyjmenováváš 14 sloupců, vkládáš 3 a binduješ alespoň 25. Navíc v bindu jako první parametr má být popis datových typů.
S3RIO2
Profil
Tak první jsem z toho byl zoufalý, ale nakonec se mi metodou pokus omyl.., podařilo chytnout tvých rad. Teď už jsem tomu konečně porozuměl, jak to funguje. Děkuji mnohokrát. :-)
Kajman
Profil
Jen poznámka, že při on duplicate key update je možné v update části použít hodnotu z insertu díky funkci

rank=values(rank)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: