前提・実現したいこと
phpでテーブルにデータを送信をしたいのですが、エラーが出てしまいます。
sns1.phpをChromeで表示し、submitボタンでpost送信をしようとするとエラーが出てしまいます。
恐らくsns2.phpの『$db = new PDO("mysql:host=localhost;dbname=db","root","root");』のところでエラーが出ているものと思われますが、なにが間違っているのか分かりません。
環境はWindows10でxamppを使っています。
どこが原因か見当がつけられないのでコードを沢山はってしまいました。申し訳ありません。
発生している問題・エラーメッセージ
Fatal error: Uncaught PDOException: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES) in C:\xampp\htdocs\sns2.php:12 Stack trace: #0 C:\xampp\htdocs\sns2.php(12): PDO->__construct('mysql:host=loca...', 'root', 'root') #1 {main} thrown in C:\xampp\htdocs\sns2.php on line 12
該当のソースコード
sns1.php
php
1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="utf-8"> 5<title>SNS1</title> 6</head> 7<body> 8 9 <form action="sns2.php" method="post"> 10 名前 11 <div><input tupe="text" name="n" placeholder="名前を入力してください"></div> 12 メッセージ 13 <div><textarea name="m" placeholder="テキストを入力してください"></textarea></div> 14 <input type="submit" value="送信するよ!"> 15 </form> 16 17</body> 18</html>
sns2.php
php
1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="utf-8"> 5<title>SNS2</title> 6</head> 7<body> 8 9<?php 10 $my_nam = htmlspecialchars($_POST["n"],ENT_QUOTES); 11 $my_mes = htmlspecialchars($_POST["m"],ENT_QUOTES); 12 $db = new PDO("mysql:host=localhost;dbname=db","root","root"); 13 $db->query("INSERT INTO tb(ban,nam,mes,dat) 14 VALUES (NULL,'$my_nam','$my_mes',NOW())"); 15 print "書き込みに成功!"; 16 print "<p><a href='sns1.php'>一覧表示へ</a></p>"; 17?> 18 19</body> 20</html> 21
試したこと
・スペルミスかと思いチェックしました。
・もしかしたらテーブルの中身は編集できているかもしれないと思いmyadminで確認しましたが、編集できていませんでした。
・検索してみてmyadminのパスワードがあっていないなどと書いてあったのですが、パスワードを設定した覚えもないのでよくわかりません。
・phpmyadminから直接データベースの編集などはできます。
補足情報(FW/ツールのバージョンなど)
初めてのことで質問の仕方もよく分かっていませんが、回答していただけると嬉しいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/23 05:11 編集