Ошибка связанных переменных SQL
Я получаю ошибку в своем коде. Я уверен, что это означает, что что-то не так с разделом column =: variable моего кода, но я прошел через это и не вижу, что не так.
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens' in F:\...
Вот код (длинная первая строка):
$stmt = $dbh->prepare("UPDATE item_list SET quantity=:quantity, new_price=:newprice, image_link=:image_link, market_hash_name=:markethashname, last_update='1000-01-01 00:00:00', is_tradable='TEST', old_price=:oldprice WHERE item_name=:itemname AND (image_link IS NULL OR quantity IS NULL OR new_price IS NULL OR market_hash_name IS NULL OR last_update IS NULL OR is_tradable IS NULL OR old_price IS NULL)");
$sql->bindParam(':quantity', $json2->quantity);
$sql->bindParam(':newprice', $json2->lowest_price);
$sql->bindParam('image_link', $image_link_full);
$sql->bindParam(':markethashname', urlencode($mydata->market_hash_name));
$sql->bindParam(':oldprice', $json2->lowest_price);
$stmt->bindValue(':itemname', $mydata->market_name);
$stmt->execute();
РЕДАКТИРОВАТЬ: image_link должен быть:image_link, все еще получая ту же ошибку
РЕДАКТИРОВАТЬ 2: было много неправильно, использовал два имени $sql и $stmt, используя bindValue вместо bindParam
1 ответ
Решение
Вам не хватает двоеточия ':' перед 'image_link' в операторе bindParam.