PHP コード ``` <?php $user = "ユーザー名"; $pass = "パスワード"; try { $dbh = new PDO('mysql:host=localhost;dbname=db1;charset=utf8', $user, $pass); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "SELECT * FROM recipes"; $stmt = $dbh->query($sql); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); print_r($result); $dbh = null; } catch (PDOException $e){ echo "エラー発生: " . htmlspecialchars($e->getMessage(), ENT_QUOTES, 'utf-8') . "<br>"; die(); } ?> エラーメッセージ <エラー内容> エラー発生: SQLSTATE[HY000] [1045] Access denied for user 'ユーザー名'@'localhost' (using password: YES) ### 試したこと 「いちばんやさしいPHPの教本」をやっています。(2015.4.21初版 P161) 本に従い上記の通り入力してグーグルクロームのブラウザで見たらエラーになりました。 ここのサイトで検索すると、ユーザー名のエラーだと思われますが ユーザー名は本の通りに入力したので間違ってないと思います。 念のためMysqlAdminの「特権」タグで見て、ユーザ名をコピーして 貼り付けてみましたがやはりエラーでした・・・。 もしお分かりになる方いれば、教えていただけると幸いです!
コードはマークダウンのcode機能を利用してご提示ください。また、「本の通り」だけではその本になんとあるかわかりません。少し古い本なので今ご自身の環境とあっていない可能性もあります。ご自身の環境(phpのバージョン、サーバーの種類やどのように実行しているか、コマンドプロンプトから接続はできるか)をご提示ください
お忙しい中、お返事いただきありがとうございました!
はじめて質問したので、不備がありましたことお詫びいたします。
「本の通り」とは、添付したコードのことです。テキスト通りに入力したという意味でした。
環境の確認について、調べてやってみます。また、コマンドプロンプトからの接続のやり方についても調べてやってみます。
アドバイス、ありがとうございました。
「コード」となっているところにコードを貼り付けてください。
コード部分を選択状態にして<code>ボタンを押すのが早いですね。
環境確認自体はphpinfo()を実行すれば分かるので、別途phpファイルを作り、phpinfo();を実行すれば良いです。
http://php.net/manual/ja/function.phpinfo.php
PHPはバージョンによって大きく違います。特に2015年の本だと5.x系を対象にしていることが多いですが、何も考えずにXAMPP最新を入れた場合はphp7.2.xが入ります。つまりその書籍が使えるかどうか不明ということになります。削除された機能もあるので正常に動かない可能性もあります。
書籍はなるべく最新の日付で最新のバージョンを対象にしているものを選ぶか、PHPマニュアル・割と新しめのネット上の記事を参考にしてください。
再度ご回答いただき感謝いたします。
早速夜に家のパソコンで試してみます!
PHP公式サイトも見たのですが、難しくてphpinfo()の実行確認までわかりませんでした。
いろいろ親切にありがとうございました。初めて質問して良かったです!
あと、今後勉強する際には最新の書籍やデータに当たるようにいたします。
取り急ぎ、お礼まで。
phpinfo()が難しいってどういうことでしょうか・・・
適当なphpファイルに下記だけ書いて(Apacheを起動した状態で)ブラウザから実行するだけですよ。
<?php
phpinfo();
あとここは回答ではなく質問への追記修正依頼の欄です。
質問内容の確認や不備への指摘の通信欄として使われます。
回答2件
あなたの回答
tips
プレビュー