У меня есть запрос с некоторыми параметрами, которые я связываю с PDO. Это мой код:
$sql = "SELECT altezza_pneumatici FROM tbl_catalogo_pneumatici ". "WHERE sigla_produttore = :marca ". "AND larghezza_pneumatici = :larghezza". "GROUP BY altezza_pneumatici ". "ORDER BY altezza_pneumatici ASC";
$query = $DBobj->dbConn->prepare($sql);
$query->bindValue(':marca', $marca, PDO::PARAM_STR);
$query->bindValue(':larghezza', $larghezza, PDO::PARAM_STR);
$query->execute();
Но это не работает. У меня есть эта ошибка:
Предупреждение: PDOStatement :: execute (): SQLSTATE [HY093]: недопустимый номер параметра: параметр не был определен в C: \ Users \ mydoc \ Documents \ pjct \ web_gomme_new \ класс \ class.Pneumatico.php онлайн 116
В чем проблема? Я напечатал обе переменные, используемые в функции привязки, и они имеют правильные значения.
Я не могу точно сказать, если это проблема, но в вашем запросе есть ошибка. (недостающее место).
$sql = "SELECT altezza_pneumatici FROM tbl_catalogo_pneumatici ". "WHERE sigla_produttore = :marca ". "AND larghezza_pneumatici = :larghezza[ ]". "GROUP BY altezza_pneumatici ". "ORDER BY altezza_pneumatici ASC";
Смотри скобки позади: larghezza.
Ваш запрос будет «..and larghezza_pneumatici =: larghezzaGROUP BY altezza_pneumatici …».
Вам не нужно разбивать строку запроса SQL.
$sql = "SELECT altezza_pneumatici FROM tbl_catalogo_pneumatici
WHERE sigla_produttore = :marca
AND larghezza_pneumatici = :larghezza
GROUP BY altezza_pneumatici
ORDER BY altezza_pneumatici ASC";
Это хорошо. Пробелы в конце каждой строки. Это должно сделать свое дело.