PHP PDO 准备和执行
PHP PDO prepare and execute
我收到以下错误:
Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
很遗憾,我没有看到问题:
$sql = "UPDATE work
SET status = :status, date_from = :dateFrom
WHERE id = :id
";
$query = $database->prepare($sql);
$query->execute(array(
':status' => $status,
':date_from' => $dateFrom,
':id' => $id
));
拼写错误
:dateFrom !== :date_from
所以将代码更改为
$sql = "UPDATE work
SET status = :status, date_from = :dateFrom
WHERE id = :id
";
$query = $database->prepare($sql);
$query->execute(array(
':status' => $status,
':dateFrom' => $dateFrom,
':id' => $id
));
prepared 方法将生成一个没有值的预编译查询,execute 方法将生成一个与每个空参数关联的值数组,其余发生在低于 SQL 的级别,其中查询是预编译,然后才获取值以避免如此着名的 SQL 注入。
只是分享这个,这样你就可以了解实际发生的事情。
我收到以下错误:
Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
很遗憾,我没有看到问题:
$sql = "UPDATE work
SET status = :status, date_from = :dateFrom
WHERE id = :id
";
$query = $database->prepare($sql);
$query->execute(array(
':status' => $status,
':date_from' => $dateFrom,
':id' => $id
));
拼写错误
:dateFrom !== :date_from
所以将代码更改为
$sql = "UPDATE work
SET status = :status, date_from = :dateFrom
WHERE id = :id
";
$query = $database->prepare($sql);
$query->execute(array(
':status' => $status,
':dateFrom' => $dateFrom,
':id' => $id
));
prepared 方法将生成一个没有值的预编译查询,execute 方法将生成一个与每个空参数关联的值数组,其余发生在低于 SQL 的级别,其中查询是预编译,然后才获取值以避免如此着名的 SQL 注入。 只是分享这个,这样你就可以了解实际发生的事情。