複数行のデータを取得するフォームがあり、各項目にはユーザーが特定の項目についてコメントできるテキスト領域があります。返される項目の数は可変であり、一部またはすべてのボックスにコメントを残す必要はありません。
リーリーecho ステートメントは、ユーザーが他のユーザーが入力した内容を変更できるため、データベースに現在保存されている内容をテキスト領域に入力します。
フォーム処理ページに渡されると、これが返されます..
リーリーつまり、配列は正しく渡されているようです。このコードを使用してデータベースを更新しています
リーリーしかし、これはまったく更新されていないようですが、どこで間違ったのでしょうか?
###どうもありがとうございます###P粉7040660872023-10-25 09:13:24
いくつかのこと:
PDOException
をスローするように PDO を設定します。これによりデバッグが容易になります。 コード:
リーリーP粉9940928732023-10-25 00:17:28
<textarea name="comment[<?=$f1?>]" cols="25" rows="2"><?=$f2?></textarea> <?php $dsn = "mysql:host=xxxx;dbname=xxxxx"; $opt = array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC ); $conn = new PDO($dsn, $username, $password, $opt); $sql = "UPDATE reservations SET comment=? WHERE tableid= ?"; $stmt = $conn->prepare($sql); foreach ($_POST["comment"] as $id => $comment) { if ($comment) { $stmt->execute([$comment, $id]); } }