前提
ここに質問の内容を詳しく書いてください。
(例)
PHPとMy SQLを用いて、ユーザー管理画面を作っています。
データベースの値をテキストフォームに入力された値に更新をする機能を実装中にタイトルのエラーが発生しました。
発生している問題・エラーメッセージ
SQLSTATE[HY000]: General error: 2031 No data supplied for parameters in prepared statement
該当のソースコード
<?php foreach ($result as $list) { ?> <tr> <td class="id"><?php echo htmlspecialchars($list["id"]); ?></td> <td class="name"><?php echo htmlspecialchars($list["username"]); ?></td> <td class="mail"><?php echo htmlspecialchars($list["mail"]); ?></td> <td class="up"><a href="update_form.php?id=<?php echo htmlspecialchars($list['id']); ?>"><i class="fas fa-file-alt"></i></a></td> <td class="dele"><a href="delete.php?id=<?php echo htmlspecialchars($list['id']); ?>"
<?php require_once("common.php"); $id = intval($_GET["id"]); $name = $_POST['username']; $mail = $_POST['mail']; try { $sql = "UPDATE users SET username = :username, mail = :mail WHERE id = :id"; $stmt = $pdo->query($sql); header("Location: list.php"); exit; } catch (Exception $e) { echo $e->getMessage(); }
データベース接続用のファイルは別ファイル(common.php)に用意し、読み込みを入れており
データの追加、削除の際にエラーは起きないのですが更新の際にのみ出てしまいます。
ずっとここで詰まって前に進めていないのでどなたかお力を貸してください。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー