前提
phpでSQliteと連携したいのですが以下のエラーが出てしまいます。コードは以下のとおりです。
実現したいこと
データベースの中身を表示する。
発生している問題・エラーメッセージ
Fatal error: Uncaught Error: Call to a member function execute() on bool in /var/www/html/webapp/sql01.php:5 Stack trace: #0 {main} thrown in /var/www/html/webapp/sql01.php on line 5``` ### 該当のソースコード ```PHP <?php try{ $dbh = new PDO('sqlite:test.db', ", "); //PDOクラスのオブジェクト作成 $sth = $dbh->prepare("select * from list"); //prepareメソッドでSQL準備 $sth->execute(); //準備したSQL文の実行 while ($row = $sth->fetch()) { //テーブルの内容を1行ずつ処理 echo $row[‘id’] . $row[‘url’]. $row[‘contents’] . "<br>" ; echo $row[0] . $row[1] . $row[2] . "<br>" ; } }Catch (PDOException $e) { print "エラー!: " . $e->getMessage() . "<br/>"; die(); } ?>
試したこと
データベースファイルに不備がないか調べましたが、問題なかったです。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
何をもって「問題なかった」かが分からないので何をどう調べた結果なのか具体的に記載してください。
現状だと「prepareの結果がfalseなんでしょう」くらいしか応えようがないです。
https://www.php.net/manual/ja/pdo.prepare.php
>戻り値 もしデータベースサーバーが文を準備できなかった場合、 PDO::prepare() は false を返すか PDOException を発行します (エラー処理 の方法に依存します)。
データベースファイルのパーミッションを確認して777でした。また、データベースファイルにはlistのテーブルがあり、1行はいっていました。
ファイル名、パスが問題ないことがわかる情報を質問本文に提示してください。
質問本文を更新しました
画像1つだけポンと置かれるのはちょっと雑かなと思います。(データアクセスのところがないので「問題ない」と客観的判断が不可能)
>ファイル名、パスが問題ないことがわかる情報
とは、各ファイルの位置関係などです。
あと、念のためテーブル定義も。
あなたの回答
tips
プレビュー