teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

原因がわかったので回答を書き直し

2016/10/23 18:58

投稿

miyahan
miyahan

スコア3095

answer CHANGED
@@ -1,17 +1,11 @@
1
1
  1番目のエラーメッセージの通りデータベースが選択されていないので、どのデータベースに対してクエリを実行してよいかわからずエラーとなっているようです。DB接続はできているのでホストやポートまわりの設定は問題ないと思います。
2
2
 
3
- データベース接続時、`dbname=$DBNM` ちゃんとデータベース名を渡しているので本来は動くはずなのですが・・・。恥ずかしなら原因はわかりせん
3
+ なぜロリポップでは動くのかわからのですが、DSNの記述方法がまちがっているようです
4
4
 
5
- 対処療法としては、以下のようにDB接続直後に `USE データベース名` のクエリを発行すればエラーは無くなると思います。
6
-
7
5
  ```php
8
- <?php
6
+ // 修正前
9
- require_once("./dbcheck/check.php");
10
- $dsn = "mysql:host=$SERV;dbname=$DBNM,charset=utf8";
7
+ $dsn = "mysql:host=$SERV;dbname=$DBNM,charset=utf8";
11
- $db = new PDO($dsn, $USER, $PASS);
12
- $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
13
- $db->query("USE `$DBNM`");
14
- ?>
15
- ```
16
8
 
17
- 原因究明については詳しい方、フォローお願いします。
9
+ // 修正後
10
+ $dsn = "mysql:host=$SERV;dbname=$DBNM;charset=utf8";
11
+ ```

1

誤字修正

2016/10/23 18:58

投稿

miyahan
miyahan

スコア3095

answer CHANGED
@@ -1,4 +1,4 @@
1
- エラーメッセージの通りデータベースが選択されていないので、どのデータベースに対してクエリを実行してよいかわからずエラーとなっているようです。DB接続はできているのでホストやポートまわりの
1
+ 1番目のエラーメッセージの通りデータベースが選択されていないので、どのデータベースに対してクエリを実行してよいかわからずエラーとなっているようです。DB接続はできているのでホストやポートまわりの設定は問題ないと思います。
2
2
 
3
3
  データベース接続時、`dbname=$DBNM` でちゃんとデータベース名を渡しているので本来は動くはずなのですが・・・。恥ずかしながら原因はわかりません。
4
4