phpでデータを(nameとpassword)をMySQLに渡して、〜さんを追加しました。と表示させたいのですが、受け渡しがうまくいかなくて、ただいま障害により大変ご迷惑をお掛けしております。と表示されうまくいきません。どのコードが間違っているのでしょうか。xamppのmysqlはstartにしています。
php
1try 2{ 3 4$staff_name=$_POST['name']; 5$staff_pass=$_POST['pass']; 6 7$staff_name=htmlspecialchars($staff_name,ENT_QUOTES,'UTF-8'); 8$staff_pass=htmlspecialchars($staff_pass,ENT_QUOTES,'UTF-8'); 9 10$dsn='mysql:dbname=shop;host=localhost;charset=utf-8'; 11$user='root'; 12$password=''; 13$dbh = new PDO($dsn,$user,$password); 14$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 15 16$sql='INSERT INTO mst_staff(name,password) VALUES (?,?)'; 17$stmt=$dbh->prepare($sql); 18$data[] = $staff_name; 19$data[] = $staff_pass; 20$stmt->execute($data); 21 22$dbh = null; 23 24print$staff_name; 25print 'さんを追加しました。<br/>'; 26 27} 28catch (Exception $e) 29{ 30 print 'ただ今障害により大変ご迷惑をお掛けしております。'; 31 exit(); 32 } 33 34 ?> 35 36 <a href = "staff_list.php">戻る</a> 37
mysql
1ただ今障害により大変ご迷惑をお掛けしております。object(PDOException)#2 (8) { ["message":protected]=> string(44) "SQLSTATE[HY000] [2019] Unknown character set" ["string":"Exception":private]=> string(0) "" ["code":protected]=> int(2019) ["file":protected]=> string(62) "/Applications/XAMPP/xamppfiles/htdocs/staff/staff_add_done.php" ["line":protected]=> int(23) ["trace":"Exception":private]=> array(1) { [0]=> array(6) { ["file"]=> string(62) "/Applications/XAMPP/xamppfiles/htdocs/staff/staff_add_done.php" ["line"]=> int(23) ["function"]=> string(11) "__construct" ["class"]=> string(3) "PDO" ["type"]=> string(2) "->" ["args"]=> array(3) { [0]=> string(46) "mysql:dbname=shop;host=localhost;charset=utf-8" [1]=> string(4) "root" [2]=> string(0) "" } } } ["previous":"Exception":private]=> NULL ["errorInfo"]=> NULL }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/26 05:48
退会済みユーザー
2017/11/26 05:50 編集
2017/11/26 06:21
退会済みユーザー
2017/11/26 06:22