目的
aaa.phpという入力フォームを作成し、POSTメソッドでbbb.phpに値を送りbbb.phpでsqlに接続し
取得した値をuserテーブルに挿入したい
問題点
ブラウザではデータが挿入されました。と表示されるがsqlを確認すると追加されていない。
試したこと
$stmt->execute();で実行されているかif文にて判定した結果、失敗と表示された。
どの部分が間違っているか確認しましたがわかりませんでした。
よろしくお願いいたします。
↓aaa.php
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>入力フォーム</title> </head> <body> <form method="POST" action="bbb.php"> 名前 <input type="text" name="name"> 身長 <input type="text" name="height"> 誕生日 <input type="test" name="birthday"> <input type="submit" name="submit"> </form> </body> </html>
↓bbb.php
<?php if (isset($_POST['name']) && isset($_POST['height']) && isset($_POST['birthday'])) { $name = $_POST['name']; $height = $_POST['height']; $birthday = $_POST['birthday']; $dsn = 'a'; $user = 'b'; $pass = 'c'; try { $dbh = new PDO($dsn, $user, $pass); var_dump($dbh); $sql = "INSERT INTO users (name, height, birthday) VALUES (:name, :height, :birthday)"; $stmt = $dbh->prepare($sql); $stmt->bindParam(':name', $name, PDO::PARAM_STR); $stmt->bindParam(':height', $height, PDO::PARAM_STR); $stmt->bindParam(':birthday', $birthday, PDO::PARAM_STR); $check=$stmt->execute(); if ($check) { echo "成功"; } else { echo "失敗"; } echo "データが挿入されました。"; } catch (PDOException $e) { echo $e->getMessage(); exit(); } } else { echo "エラー"; } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>INSERT</title> </head> <body> </body> </html>

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/02 15:13
2021/11/02 15:28
2021/11/02 16:22