php内でPDOを使いselectを実行してもfalseとなってしまいます。
phpでデータベースからデータを取得し、表示させるというプログラムを作っているのですが、
データベースにデータが入っているにもかかわらずselectの結果がfalseとなります。
また、エラーメッセージにはテーブルが存在しないという内容になってしまいます。
クエリを実行した後に、
if ($stmt===false) {
print('失敗。<br>');
}
としたときに、失敗と表示されたので、$stmtの中身が空になっている?のかと思いました。
また、データベースが存在し、テーブルとその中身があることの確認は
コマンドプロンプトからmysqlに接続し
select number, name, body, date, pass from db_sample.post;
を実行した際にうまく表示されたので、SQL文が間違っているわけじゃないと思うのですが・・
何が原因でしょうか?
初心者のため、用語がまだしっかり理解できておらず
おかしな文章になっていたら申し訳ないです。
発生している問題・エラーメッセージ
string(104) "SQLSTATE[42S02]: Base table or view not found: 1146 Table 'db_sample.post' doesn't exist"
該当のソースコード
php
1<?php 2 3// 接続設定 4$user = 'co-18-92.it.99sv'; 5$mypass = '***'; 6 7// データベースに接続 8 9try { 10 $dsn = 'mysql:host=localhost;dbname=db_sample;charset=utf8'; 11 $pdo = new PDO($dsn, $user, $mypass); 12 $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 13 14 $sql = 'select number, name, body, date, pass from db_sample.post'; 15 $stmt = $pdo->query($sql); 16 17 if( ! $stmt ) { 18 die(var_export($pdo->errorinfo(), TRUE)); 19 } 20 21 22 while($result = $stmt->fetch(PDO::FETCH_ASSOC)){ 23 24 print($result['number']); 25 print($result['name']); 26 print($result['body']); 27 print($result['date']); 28 print($result['pass'].'<br>'); 29 30 } 31 32 } catch (PDOException $e) { 33 34 var_dump($e->getMessage()); 35 exit; 36 37 } 38 39 40 41 42 43 ?>
回答2件
あなたの回答
tips
プレビュー