我有一個可檢索多行資料的表單,每個項目都有一個文字區域,供使用者對特定項目發表評論。返回的項目數量是可變的,並且他們不必在任何/所有框中留下評論。
<textarea name="comment[]" cols="25" rows="2"><?php echo $f2; ?></textarea> <input name="tableid[]" type="hidden" value="<?php echo $f1; ?>">
echo 語句用目前儲存在資料庫中的任何內容填滿文字區域,因為使用者可以修改其他人輸入的內容。
當它被傳遞到表單處理頁面時,它會傳回這個..
Submit: Submit comment: Test Comment 1,Test Comment 2 tableid: 590,591
所以它似乎正確地傳遞了陣列。我正在使用此程式碼來更新資料庫
$conn = new PDO("mysql:host=xxxx;dbname=xxxxx",$username,$password); $i = 0; if(isset($_POST['submit'])) { foreach($_POST['comment'] as $comment) { $comment = $_POST['comment'][$i]; $id = $_POST['tableid'][$i]; $stmt = $conn->prepare("UPDATE reservations SET comment=:comment WHERE tableid=:id"); $stmt->bindValue(':comment', $comment, PDO::PARAM_INT); $stmt->bindValue(':id', $id, PDO::PARAM_INT); $stmt->execute(); $i++; } }
但是,這似乎根本沒有更新,我哪裡出錯了?
非常感謝
幾件事:
PDOException
。這將使調試變得更加容易。程式碼: