编辑:事实证明我一直在吠叫错误的树可以这么说。我已经编辑了这个问题,使其至少对其他收到错误的人有用。
对于所有在尝试执行准备好的 PDO 查询时遇到以下错误的人:
警告:PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined on line 26
请看下面我的回答。
这意味着您传递的数组值$query->execture($array)
比:values
查询中的多。如果您遇到类似但措辞不同的错误,则表示:values
查询中的内容多于数组中的内容。例如:
$array = array(
'username' => 'Bob',
'id' => 42,
);
//...
$query = "SELECT * FROM `users` WHERE `id`=:id";
//...
$data->execute($array);
这会产生错误,因为尽管您传递的是“用户名”,但它从未在查询中使用。希望这对某人有帮助!