質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1250閲覧

PHP入門 データ接続のエラーについて

blue123

総合スコア13

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/01/06 05:06

編集2019/01/06 11:20
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の「特権」タグで見て、ユーザ名をコピーして 貼り付けてみましたがやはりエラーでした・・・。 もしお分かりになる方いれば、教えていただけると幸いです!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/01/06 06:01

コードはマークダウンのcode機能を利用してご提示ください。また、「本の通り」だけではその本になんとあるかわかりません。少し古い本なので今ご自身の環境とあっていない可能性もあります。ご自身の環境(phpのバージョン、サーバーの種類やどのように実行しているか、コマンドプロンプトから接続はできるか)をご提示ください
blue123

2019/01/06 11:26

お忙しい中、お返事いただきありがとうございました! はじめて質問したので、不備がありましたことお詫びいたします。 「本の通り」とは、添付したコードのことです。テキスト通りに入力したという意味でした。 環境の確認について、調べてやってみます。また、コマンドプロンプトからの接続のやり方についても調べてやってみます。 アドバイス、ありがとうございました。
m.ts10806

2019/01/06 11:58

「コード」となっているところにコードを貼り付けてください。 コード部分を選択状態にして<code>ボタンを押すのが早いですね。 環境確認自体はphpinfo()を実行すれば分かるので、別途phpファイルを作り、phpinfo();を実行すれば良いです。 http://php.net/manual/ja/function.phpinfo.php PHPはバージョンによって大きく違います。特に2015年の本だと5.x系を対象にしていることが多いですが、何も考えずにXAMPP最新を入れた場合はphp7.2.xが入ります。つまりその書籍が使えるかどうか不明ということになります。削除された機能もあるので正常に動かない可能性もあります。 書籍はなるべく最新の日付で最新のバージョンを対象にしているものを選ぶか、PHPマニュアル・割と新しめのネット上の記事を参考にしてください。
blue123

2019/01/07 02:26

再度ご回答いただき感謝いたします。 早速夜に家のパソコンで試してみます! PHP公式サイトも見たのですが、難しくてphpinfo()の実行確認までわかりませんでした。 いろいろ親切にありがとうございました。初めて質問して良かったです! あと、今後勉強する際には最新の書籍やデータに当たるようにいたします。 取り急ぎ、お礼まで。
m.ts10806

2019/01/07 02:29 編集

phpinfo()が難しいってどういうことでしょうか・・・ 適当なphpファイルに下記だけ書いて(Apacheを起動した状態で)ブラウザから実行するだけですよ。 <?php phpinfo();
m.ts10806

2019/01/07 02:29

あとここは回答ではなく質問への追記修正依頼の欄です。 質問内容の確認や不備への指摘の通信欄として使われます。
guest

回答2

0

ご回答くださいました方々、ありがとうございました。
またこのサイトの使い方も間違っておりましてご迷惑おかけして申し訳ございませんでした。

アドバイスいただいた諸方法をひとつづつ試したところ(rootでアクセス、コマンドプロンプトで接続確認、ユーザ名やパスワードの確認、バージョン確認など)接続できました!

最初から改めてコードも打ち直し、一つずつ確認しながらやってみたらできました。

どこかで入力間違いをしていたか、Xamppの起動がうまくいっていなかったか、などが
考えられます。バージョン違いによるものではなさそうです。
とりあえず今回のエラーの状況を逐一メモしたので再度検証いたします。

本当にありがとうございました。

投稿2019/01/08 14:21

blue123

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

mysql自体の環境構築や接続もできているように見えるので
rootでアクセスしてテストしてみてください
(この場合のrootはmysqlユーザーのrootでありシステムのrootではありません)

投稿2019/01/07 03:53

yambejp

総合スコア114572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問