使用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中文網其他相關文章!