3

编辑:事实证明我一直在吠叫错误的树可以这么说。我已经编辑了这个问题,使其至少对其他收到错误的人有用。

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

警告:PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined on line 26

请看下面我的回答。

4

2 回答 2

1

这意味着您传递的数组值$query->execture($array):values查询中的多。如果您遇到类似但措辞不同的错误,则表示:values查询中的内容多于数组中的内容。例如:

$array = array(
  'username' => 'Bob',
  'id' => 42,
);

//...

$query = "SELECT * FROM `users` WHERE `id`=:id";

//...

$data->execute($array);

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

于 2012-08-11T13:10:52.667 回答
1

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

array(':id' => 1)

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

有关示例,请参阅PDO 文档

于 2012-08-08T16:48:30.853 回答