Почему PDO не связывает мои параметры?

У меня есть запрос с некоторыми параметрами, которые я связываю с 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

В чем проблема? Я напечатал обе переменные, используемые в функции привязки, и они имеют правильные значения.

0

Решение

Я не могу точно сказать, если это проблема, но в вашем запросе есть ошибка. (недостающее место).

$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 …».

1

Другие решения

Вам не нужно разбивать строку запроса 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";

Это хорошо. Пробелы в конце каждой строки. Это должно сделать свое дело.

0