MySQL查询:无效的参数编号:参数未定义

时间:2018-09-13 20:38:02

标签: php mysql pdo

查询:

$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)。

0 个答案:

没有答案