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

質問編集履歴

2

質問内容の詳細を追加

2018/08/11 09:07

投稿

pen_maru
pen_maru

スコア9

title CHANGED
File without changes
body CHANGED
@@ -4,6 +4,18 @@
4
4
  phpでデータベースからデータを取得し、表示させるというプログラムを作っているのですが、
5
5
  データベースにデータが入っているにもかかわらずselectの結果がfalseとなります。
6
6
  また、エラーメッセージにはテーブルが存在しないという内容になってしまいます。
7
+
8
+ クエリを実行した後に、
9
+ if ($stmt===false) {
10
+ print('失敗。<br>');
11
+ }
12
+ としたときに、失敗と表示されたので、$stmtの中身が空になっている?のかと思いました。
13
+
14
+ また、データベースが存在し、テーブルとその中身があることの確認は
15
+ コマンドプロンプトからmysqlに接続し
16
+ select number, name, body, date, pass from db_sample.post;
17
+ を実行した際にうまく表示されたので、SQL文が間違っているわけじゃないと思うのですが・・
18
+
7
19
  何が原因でしょうか?
8
20
 
9
21
 

1

書式の改善

2018/08/11 09:07

投稿

pen_maru
pen_maru

スコア9

title CHANGED
File without changes
body CHANGED
@@ -14,7 +14,7 @@
14
14
  ### 発生している問題・エラーメッセージ
15
15
 
16
16
  ```
17
- array ( 0 => '42S02', 1 => 1146, 2 => 'Table \'db_sample.post\' doesn\'t exist', )
17
+ string(104) "SQLSTATE[42S02]: Base table or view not found: 1146 Table 'db_sample.post' doesn't exist"
18
18
  ```
19
19
 
20
20
  ### 該当のソースコード
@@ -31,9 +31,8 @@
31
31
  try {
32
32
  $dsn = 'mysql:host=localhost;dbname=db_sample;charset=utf8';
33
33
  $pdo = new PDO($dsn, $user, $mypass);
34
- array(PDO::ATTR_EMULATE_PREPARES => false);
34
+ $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
35
35
 
36
-
37
36
  $sql = 'select number, name, body, date, pass from db_sample.post';
38
37
  $stmt = $pdo->query($sql);
39
38
 
@@ -53,7 +52,10 @@
53
52
  }
54
53
 
55
54
  } catch (PDOException $e) {
55
+
56
- print('データベース接続失敗。');
56
+ var_dump($e->getMessage());
57
+ exit;
58
+
57
59
  }
58
60
 
59
61