前提・実現したいこと
PHPでデータベースを繋ぐ基礎的な段階です。
入力されたアンケートを自動で保存させる機能をmysqlで取得したいのですが、
データが入ってきません。
発生している問題・エラーメッセージ
恐らく、下記文章が何かミスを犯していると考えております。
$sql = 'INSERT INTO anketo (nickname,email,goiken) VALUES ("'.$nickname.'","'.$email.'","'.$goiken.'")';
新規登録のコードである部分ですが、『anketo (nickname,email,goiken)』がエディタ上でグレーになっております。
シングルクウォーテーションやダブルクウォーテーションで囲んだりもしましたが、DBに挿入されません。
該当のソースコード
PHP
1<!DOCTYPE html> 2<html lang="ja" dir="ltr"> 3 <head> 4 <meta charset="utf-8"> 5 <title>PHPと繋ぐ</title> 6 </head> 7 <body> 8 9 <?php 10 11 $dsn = 'mysql:dbname=phpkiso;host=localhost'; 12 $user = 'root'; 13 $password = ''; 14 $dbh = new PDO($dsn,$user,$password); 15 $dbh->query('SET NAMES utf8'); 16 17 $nickname=$_POST['nickname']; 18 $email=$_POST['email']; 19 $goiken=$_POST['goiken']; 20 21 print $nickname; 22 print '様<br/>'; 23 print 'ご意見ありがとうございました。'; 24 print '頂いたご意見『'; 25 print $goiken; 26 print '』<br/>'; 27 print $email; 28 print 'にメールを送りましたのでご確認ください'; 29 30 $mail_sub='アンケート受け付けました。'; 31 $mail_body=$nickname."様へ\nアンケートご協力ありがとうございました。"; 32 $mail_body=html_entity_decode($mail_body,ENT_QUOTES,"UTF-8"); 33 $mail_head='From:mroktkhr@gmail.com'; 34 mb_language('Japanese'); 35 mb_internal_encoding("UTF-8"); 36 mb_send_mail($email,$mail_sub,$mail_body,$mail_head); 37 38 $sql = 'INSERT INTO anketo (nickname,email,goiken) VALUES ("'.$nickname.'","'.$email.'","'.$goiken.'")'; 39 $stmt = $dbh->prepare($sql); 40 $stmt->execute(); 41 42 $dbh = null; 43 44 45 ?> 46 47 </body> 48</html>
試したこと
PHPの構文チェッカーを使用しましたが、問題はないとのこと。
補足情報(FW/ツールのバージョンなど)
DBサーバー
サーバのバージョン: 5.7.34 - MySQL Community Server (GPL)
WEBサーバー
PHP のバージョン: 7.4.21
Apache/2.4.48 (Unix
PHPmyadmin
Apache/2.4.48 (Unix