回答編集履歴

2

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

2016/10/23 18:58

投稿

miyahan
miyahan

スコア3095

test CHANGED
@@ -2,32 +2,20 @@
2
2
 
3
3
 
4
4
 
5
- データベース接続時、`dbname=$DBNM` でちゃんとデータベース名を渡しているので本来は動くはずなのですが・・・。恥ずかしながら原因はわかりません。
6
-
7
-
8
-
9
- 対処療法としては、以下のようにDB接続直後に `USE データベース名` クエリを発行すればエラーは無くなと思います。
5
+ なぜロリポップで動くのかわからないのですが、DSN記述方法がまちがっていようです。
10
6
 
11
7
 
12
8
 
13
9
  ```php
14
10
 
15
- <?php
11
+ // 修正前
16
12
 
17
- require_once("./dbcheck/check.php");
18
-
19
- $dsn = "mysql:host=$SERV;dbname=$DBNM,charset=utf8";
13
+ $dsn = "mysql:host=$SERV;dbname=$DBNM,charset=utf8";
20
-
21
- $db = new PDO($dsn, $USER, $PASS);
22
-
23
- $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
24
-
25
- $db->query("USE `$DBNM`");
26
-
27
- ?>
28
-
29
- ```
30
14
 
31
15
 
32
16
 
33
- 原因究明については詳しい方、フォローお願いします。
17
+ // 修正後
18
+
19
+ $dsn = "mysql:host=$SERV;dbname=$DBNM;charset=utf8";
20
+
21
+ ```

1

誤字修正

2016/10/23 18:58

投稿

miyahan
miyahan

スコア3095

test CHANGED
@@ -1,4 +1,4 @@
1
- エラーメッセージの通りデータベースが選択されていないので、どのデータベースに対してクエリを実行してよいかわからずエラーとなっているようです。DB接続はできているのでホストやポートまわりの
1
+ 1番目のエラーメッセージの通りデータベースが選択されていないので、どのデータベースに対してクエリを実行してよいかわからずエラーとなっているようです。DB接続はできているのでホストやポートまわりの設定は問題ないと思います。
2
2
 
3
3
 
4
4