使用 MySQL 中发布的表单数据更新多行
当处理需要更新数据库中多行的表单时,必须处理数据提交正确。本文介绍了一个特定场景,其中使用表单收集多张照片的信息(标题和标签)并更新 MySQL 数据库中的记录。
表单
该表单收集链接到特定图库 ID 的每张照片的数据。对于每张照片,它包括标题和标签的输入,以及照片 ID 的隐藏输入。此信息在处理表单时提交。
更新查询
更新查询旨在根据发布的数据更新每张照片的标题和标签。但是,当尝试将参数绑定到查询时,就会出现问题。
解决方案
解决此问题的关键是提交带有数组名称的输入字段,如下所示多个具有相同名称的字段不能作为单独的字段进行处理。通过将它们作为数组提交,我们可以循环发布的数据并使用相应的 ID 更新每一行。
调整后的代码
HTML 输入的修改后的代码片段字段如下:
<code class="html">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' />";</code>
更新查询循环的更新代码:
<code class="php">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)); }</code>
通过将表单数据作为数组提交并迭代值,可以有效更新多个根据发布的信息在数据库中存储行。
以上是如何使用发布的表单数据更新 MySQL 中的多行?的详细内容。更多信息请关注PHP中文网其他相关文章!