Сегодня я столкнулся с ошибкой (в PDO), которую я никогда раньше не видел, но это явно очевидно, когда вы думаете об этом.
Я получил следующую ошибку: Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number:
Запрос, который я использовал, был похож на следующий:
SELECT x FROM y WHERE -- CHECKING IF X = :Z -- x = :y AND 1 = 2
Очевидно, у меня было больше параметров и более длинный запрос.
Почему это дает мне эту ошибку?
Решение очевидно: PDO игнорирует комментарии как таковые и пытается связать несуществующую переменную ': Z'. Вы не можете использовать параметры в комментариях в PDO (если вы не связываете их).
В комментариях есть аналогичная ошибка с использованием вопросительных знаков.