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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

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

Q&A

解決済

3回答

3109閲覧

データベースとの接続が終了できない。

ocha9

総合スコア23

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

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

0グッド

0クリップ

投稿2019/07/15 14:20

編集2019/07/16 02:31

phpMyAdminにて、ユーザーを追加し今回、
ファイル名「list.php」にて

php

1コード 2<?php 3$user = "suzuki"; 4$PASS = "0901";⇒小文字のpに変えました。 5$dbh = new PDO('mysql:host=localhost;dbname=db1;charset=utf8', $user, $pass); 6$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 7$sql = "SELECT * FROM recipes"; 8$stmt = $dbh->query($sql); 9$result = $stmt->fetchAll(PDO::FETCH_ASSOC); 10print_r($result); 11$dbh = null; 12?>

で、データベースとの接続終了をしようとしたところ

Notice: Undefined variable: pass in C:\xampp\htdocs\yasashiiphp\list.php on line 4

Fatal error: Uncaught PDOException: SQLSTATE[HY000] [1045] Access denied for user 'suzuki'@'localhost' (using password: NO) in C:\xampp\htdocs\yasashiiphp\list.php:4 Stack trace: #0 C:\xampp\htdocs\yasashiiphp\list.php(4): PDO->__construct('mysql:host=loca...', 'suzuki', NULL) #1 {main} thrown in C:\xampp\htdocs\yasashiiphp\list.php on line 4

というエラーが出ます。

ユーザー名かパスワードに間違いがあるというエラーみたいですが、
PODで接続する際の引数や、使用している$user、$passを確認したのですが

パスワードに関しては、変更もしてみました。

エラーメッセージが変わりません。
データベースのユーザーの権限は、権限移譲がいいえで

グローバル特権でデータにはすべてチェックが入っています。

本来出るべきメッセージは

phpMyAdminにて、データベース名db1で作成した、データベースの情報が出る予定です。

【追記】
小文字にかえたところ違うエラーが出ました。

Fatal error: Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'db1.recipes' doesn't exist in C:\xampp\htdocs\yasashiiphp\list.php:7 Stack trace: #0 C:\xampp\htdocs\yasashiiphp\list.php(7): PDO->query('SELECT * FROM r...') #1 {main} thrown in C:\xampp\htdocs\yasashiiphp\list.php on line 7

SQL文に間違いがあるエラーで、テーブル名やSQL文を間違えた場合の表示が出るみたいですが

不明です。

こちらのエラーの改善点を教えていただけますでしょうか。

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

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

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

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

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

guest

回答3

0

ベストアンサー

Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'db1.recipes' doesn't exist

つまるところ、接続しに行ったdb1というデータベース内にrecipesというテーブルが存在しない、ということですので、そもそもテーブルが作られてなのでは?と思います。

SELECT * FROM recipesというSQL自体には構文エラーがないので、
db1データベース内に確実にテーブルが作られているかご確認ください。

投稿2019/07/16 04:37

m.ts10806

総合スコア80765

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

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

ocha9

2019/07/16 04:56

ご指摘ありがとうございます。errorメッセージはこう読むのかと分かり感謝しています。 php my adminにて、db1があり、recipesという、6カラムのテーブルが2つありました。 1つ考えたのが、ユーザー名 suzukiが権限移譲がいいえになっているのですが、 これは、本質的な原因と無関係でしょうか。
ocha9

2019/07/16 04:59

権限移譲してみましたが、アクセスできませんでした。 もう少し原因を考えてみます。
m.ts10806

2019/07/16 04:59

Google翻訳にかけるだけでもそれなりに分かりやすい言葉になおしてくれますよ。 >1つ考えたのが、ユーザー名 suzukiが権限移譲がいいえになっているのですが、 これは、本質的な原因と無関係でしょうか。 んー分からないですね。 テーブル毎に何かしら権限かけているなら分からなくもないですが、 db1に接続できている時点でその問題はなさそうな気もします。
guest

0

PHP

1// $PASS = "0901"; 2// ↓ 3 $pass = "0901";

【Q. PHPは大文字小文字を区別するか? - Qiita】
https://qiita.com/tadsan/items/6c6329eeb43929271119#変数

投稿2019/07/15 14:24

kei344

総合スコア69364

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

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

ocha9

2019/07/16 02:36

Passご指摘ありがとうございます。小文字に変えて再度動かしたところ別なerrorが出ました。 本文ご参照願います。
guest

0

ブラウザをFirefoxで見たら見れました

投稿2019/07/16 12:24

ocha9

総合スコア23

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問