Ich habe ein Formular, das mehrere Datenzeilen abruft. Jedes Element verfügt über einen Textbereich, in dem Benutzer einen Kommentar zu einem bestimmten Element abgeben können. Die Anzahl der zurückgegebenen Elemente ist variabel und es ist nicht erforderlich, in einem oder allen Feldern Kommentare zu hinterlassen.
<textarea name="comment[]" cols="25" rows="2"><?php echo $f2; ?></textarea> <input name="tableid[]" type="hidden" value="<?php echo $f1; ?>">Die
echo-Anweisung füllt den Textbereich mit allem, was derzeit in der Datenbank gespeichert ist, da der Benutzer ändern kann, was andere eingegeben haben.
Wenn es an die Formularverarbeitungsseite übergeben wird, wird dies zurückgegeben..
Submit: Submit comment: Test Comment 1,Test Comment 2 tableid: 590,591
Es scheint also, dass das Array korrekt übergeben wird. Ich verwende diesen Code, um die Datenbank zu aktualisieren
$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++; } }
Allerdings scheint dies überhaupt nicht aktualisiert zu sein. Was habe ich falsch gemacht?
Vielen Dank
几件事:
PDOException
。这将使调试变得更加容易。代码: