使用 MySQL 发布表单并更新多行
问题:
您已创建一个表单检索具有特定图库 ID 的所有照片,并允许用户更新其标题和标签。但是,当前代码不会更新数据库中的任何行。
表单结构:
表单生成一个 HTML 照片列表,其中包含用于更新其照片的输入字段标题、标签和用于识别 ID 的隐藏字段。
更新查询:
更新查询会迭代每个提交的表单,并为每张照片执行单独的 UPDATE 语句。但是,按照编码,查询无法正确访问表单数据。
解决方案:
要成功更新多行,需要提交表单数据作为数组并在更新查询中循环遍历它们。
表单更新:
修改输入字段以将值作为数组提交:
echo "<input type='text' name='photo_title[]' value='$title' /><br />"; echo "<input type='text' name='photo_tags[]' value='$tags' />"; echo "<input type='hidden' name='photo_id[]' value='$id' />";
更新查询重写:
迭代提交的表单数据数组:
foreach ($_POST['photo_id'] as $key => $photo_id) { $id = $photo_id; $title = $_POST['photo_title'][$key]; $tags = $_POST['photo_tags'][$key]; $sql = "UPDATE photos SET title=?, tags=? WHERE id=?"; $query = $db->prepare($sql); $query->execute(array($title, $tags, $id)); }
此更新的代码将正确循环提交的表单数据,提取更新的值,并对每张照片执行 UPDATE 语句,成功更新 MySQL 数据库中的多行。
以上是如何使用表单更新 MySQL 数据库中的多行?的详细内容。更多信息请关注PHP中文网其他相关文章!