前提
ここに質問の内容を詳しく書いてください。
PHPからデータベースを操作するという項目を勉強しているのですが、本のサンプルコードを入力して実行してもエラーが出てしまいます。
実現したいこと
ここに実現したいことを箇条書きで書いてください。
発生している問題・エラーメッセージ
エラーメッセージ ただいま障害により大変ご迷惑をお掛けしております ### 該当のソースコード <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>ろくまる農園</title> </head> <body> <?php try { $pro_name=$_POST['name']; $pro_price=$_POST['price']; $pro_name=htmlspecialchars($pro_name,ENT_QUOTES,'UTF-8'); $pro_price=htmlspecialchars($pro_price,ENT_QUOTES,'UTF-8'); $dsn='mysql:dbname=shop;host=localhost:8889;charset=utf8'; $user='root'; $password='root'; $dbh=new PDO($dsn,$user,$password); $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); $sql='INSERT INTO mst_product(name,price) VALUES (?,?)'; $stmt=$dbh->prepare($sql); $data[]=$pro_name; $data[]=$pro_price; $stmt->execute($data); $dbh=null; print $pro_name; print 'を追加しました。<br />'; } catch(Exception$e) { var_dump($e); print'ただいま障害により大変ご迷惑をお掛けしております。'; exit(); } ?> <a href="pro_list.php">戻る</a> </body> </html> ```ここに言語名を入力 ソースコード
試したこと
var_dump($eで中身を出力した所、
object(PDOException)#3 (8) { ["message":protected]=> string(79) "SQLSTATE[HY000]: General error: 1364 Field 'gazou' doesn't have a default value" ["string":"Exception":private]=> string(0) "" ["code":protected]=> string(5) "HY000" ["file":protected]=> string(50) "/Applications/MAMP/htdocs/product/pro_add_done.php" ["line":protected]=> int(30) ["trace":"Exception":private]=> array(1) { [0]=> array(6) { ["file"]=> string(50) "/Applications/MAMP/htdocs/product/pro_add_done.php" ["line"]=> int(30) ["function"]=> string(7) "execute" ["class"]=> string(12) "PDOStatement" ["type"]=> string(2) "->" ["args"]=> array(1) { [0]=> array(2) { [0]=> string(12) "にんじん" [1]=> string(3) "180" } } } } ["previous":"Exception":private]=> NULL ["errorInfo"]=> array(3) { [0]=> string(5) "HY000" [1]=> int(1364) [2]=> string(42) "Field 'gazou' doesn't have a default value" } } ただいま障害により大変ご迷惑をお掛けしております。
このような画面になりました
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー