前提・実現したいこと
PHPでアカウント作成なシステムを作っています。[想像しているサイト]を実現したいのですがうまく行きません。
[想像しているサイト]
アカウント名:[ (※ここに名前が書かれていて)???? ]が追加されました。
ログインページへ
発生している問題・エラーメッセージ
エラーメッセージ(2020/09/28(月)に更新) [現在] Fatal error: Uncaught TypeError: PDO::__construct() expects parameter 4 to be array, string given in /Applications/XAMPP/xamppfiles/htdocs/気/account_addition_completion.php:32 Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/気/account_addition_completion.php(32): PDO->__construct('mysql:dbname=sh...', 'root', '', '') #1 {main} thrown in /Applications/XAMPP/xamppfiles/htdocs/気/account_addition_completion.php on line 32
該当のソースコード
ソースコード <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>ようこそ</title> </head> <body> <?php try { $staff_name=$_POST['name']; $staff_pass=$_POST['pass']; $staff_phonenumber=$_POST['phonenumber']; $staff_email=$_POST['email']; $staff_prefeclure=$_POST['prefeclure']; $staff_postalcode=$_POST['postalcode']; $staff_name= htmlspecialchars($staff_name,ENT_QUOTES,'UTF-8'); $staff_pass= htmlspecialchars($staff_pass,ENT_QUOTES,'UTF-8'); $staff_phonenumber= htmlspecialchars($staff_phonenumber,ENT_QUOTES,'UTF-8'); $staff_email= htmlspecialchars($staff_email,ENT_QUOTES,'UTF-8'); $staff_prefeclure= htmlspecialchars($staff_prefeclure,ENT_QUOTES,'UTF-8'); $staff_postalcode= htmlspecialchars($staff_postalcode,ENT_QUOTES,'UTF-8'); $dsn = 'mysql:dbname=shop;host=localhost;charset=utf8'; $user = 'root'; $password = ''; $prefeclure= ''; $dbh =new PDO( $dsn, $user, $password, $prefeclure); $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); $mysql = 'INSERT INTO mst_staff (name,password,phonenumber,email,prefeclure,postalcode) VALUES (?,?,?,?,?,?)'; $stmt = $dbh->prepare($mysql); $data[] = $staff_name; $data[] = $staff_pass; $data[] = $staff_phonenumber; $data[] = $staff_email; $data[] = $staff_prefeclure; $data[] = $staff_postalcode; $stmt->execute($data); $dbh = null; print 'アカウント 作成完了<br />'; } catch(Exception $e) { echo $e->getMessage(); echo $e->getTraceAsString(); exit ( ); } ?> <a href="account_login.php">ログインページへ</a> </body> </html>
試したこと
プログラムを変えてみたりとか、色々ためしてみましたが全部ダメでしたので教えてくれませんか?
補足[SQLのコードを変えてみたり、プログラムを色々なところを消してみたり、打ち直したりしました。原因が分からずにいました。]
補足情報(FW/ツールのバージョンなど)
[補足]
機種:[Mac Book Pro],ソフトウェア:[XAMPP 7.4.10-0],[MySQl 5.0.2],
[(ウェブサーバー)PHPのバージョン:7.4.10]
回答1件
あなたの回答
tips
プレビュー