回答編集履歴
2
原因がわかったので回答を書き直し
answer
CHANGED
@@ -1,17 +1,11 @@
|
|
1
1
|
1番目のエラーメッセージの通りデータベースが選択されていないので、どのデータベースに対してクエリを実行してよいかわからずエラーとなっているようです。DB接続はできているのでホストやポートまわりの設定は問題ないと思います。
|
2
2
|
|
3
|
-
|
3
|
+
なぜロリポップでは動くのかわからないのですが、DSNの記述方法がまちがっているようです。
|
4
4
|
|
5
|
-
対処療法としては、以下のようにDB接続直後に `USE データベース名` のクエリを発行すればエラーは無くなると思います。
|
6
|
-
|
7
5
|
```php
|
8
|
-
|
6
|
+
// 修正前
|
9
|
-
require_once("./dbcheck/check.php");
|
10
|
-
|
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
誤字修正
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
エラーメッセージの通りデータベースが選択されていないので、どのデータベースに対してクエリを実行してよいかわからずエラーとなっているようです。DB接続はできているのでホストやポートまわりの
|
1
|
+
1番目のエラーメッセージの通りデータベースが選択されていないので、どのデータベースに対してクエリを実行してよいかわからずエラーとなっているようです。DB接続はできているのでホストやポートまわりの設定は問題ないと思います。
|
2
2
|
|
3
3
|
データベース接続時、`dbname=$DBNM` でちゃんとデータベース名を渡しているので本来は動くはずなのですが・・・。恥ずかしながら原因はわかりません。
|
4
4
|
|