查询:
$sql = "UPDATE `course` SET
`courselocation_id` = :courselocation_id,
`courselocation_period_id` = :courselocation_period_id,
`start_date` = :start_date,
`instructor_id` = :instructor_id,
`edited_by` = :edited_by,
`edited_at` = :edited_at
WHERE `id` = :id";
$params = [
":courselocation_id" => 4,
":courselocation_period_id" => 8,
":start_date" => "2018-09-17",
":instructor_id" => 17,
":edited_by" => 1,
":edited_at" => 1536828797,
":id" => 2533
];
$query = $db->prepare($sql);
$query->execute($params);
正常执行,数据已写入,但出现错误:
PHP警告:PDOStatement :: execute():SQLSTATE [HY093]:无效的参数编号:在第188行的/path/to/script.php中未定义参数
第188行实际上是带有$ query-> execute($ params)
的行。我该如何解决?
更新:
看起来真的是另一个查询是引起此警告的原因,就像@RiggsFolly建议的一样。当我注释掉其中一个时,另一个没有执行,这就是为什么它不在“雷达之下”的原因。另一个查询的参数拼写错误(不是:intitutionID而是:institutionId)。