自定义PDO类错误

时间:2012-08-08 15:45:39

标签: php pdo

  

编辑:事实证明,我一直在咆哮错误的树   说话。我编辑了这个问题,使其至少对其他人有用   谁得到错误。

对于尝试执行准备好的PDO查询时遇到以下错误的所有人:

  

警告:PDOStatement :: execute()[pdostatement.execute]:   SQLSTATE [HY093]:参数号无效:未定义参数   在第26行

请参阅下面的答案。

2 个答案:

答案 0 :(得分:1)

如果我错了,请纠正我,但你不应该为参数数组使用以下语法:

array(':id' => 1)

请注意原始帖子中省略的冒号。

有关示例,请参阅PDO docs

答案 1 :(得分:1)

这意味着您在$query->execture($array)中传递的数组值比查询中的:values多。如果您收到类似但措辞不同的错误,则表示查询中的:values比您在数组中的数量多$array = array( 'username' => 'Bob', 'id' => 42, ); //... $query = "SELECT * FROM `users` WHERE `id`=:id"; //... $data->execute($array); 。例如:

{{1}}

这会产生错误,因为虽然您传递的是“用户名”,但它从未在查询中使用过。希望这有助于某人!