尝试使用php PDO update语句更新我的数据库表,该语句通过已存在的ID更新表。
if (isset($_POST["save"])){
$id = $_POST["save"];
$my_editor = $_POST["my_editor"];
$sql = 'UPDATE advert_composer SET content = :content WHERE id = 1';
$stmt = $connection->prepare($sql);
$stmt->execute(['my_editor' => $my_editor, 'id' => $id ]);
if ($stmt->rowCount()) {
$_SESSION['msg'] = ['type' => 'success', 'message' => 'Content created successfully'];
} else {
$_SESSION['msg'] = ['type' => 'info', 'message' => 'Error Occured Creating Content Try again later'];
}
}
这是我遇到的错误。
致命错误:未捕获的PDOException:SQLSTATE [HY093]:无效的参数 number:绑定变量的数量与中的令牌数量不匹配 /opt/lampp/htdocs/ubth_recruit/admin/advert_composer.php:16堆栈 跟踪:#0 /opt/lampp/htdocs/ubth_recruit/admin/advert_composer.php(16): PDOStatement-> execute(Array)#1 {main}被抛出 /opt/lampp/htdocs/ubth_recruit/admin/advert_composer.php,第16行
答案 0 :(得分:0)
您查询的仅包含1个参数(:content
)。
$sql = 'UPDATE advert_composer SET content = :content WHERE id = 1';
将:content
更改为:my_editor
,或者反过来。
正如评论中提到的,另一个原因是id
具有固定值(1)。您应该将1
更改为:id
,或从execute()
数组中删除ID。
这说明了为什么您会收到异常:
无效的参数编号:绑定变量的数量与(...)中的标记数量不匹配
仅因为查询中可用参数的数量(在您的情况下,只有1个,以:
开头)与execute()
中给定的参数数量(给定2个)不匹配。