質問: null; ?> _______________________________________ エラー内容 Notice: Undefined variable: sql in C:\xampp\htdocs\yasashiiphp\list.php on line 7 Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1065 Query was empty in C:\xampp\htdocs\yasashiiphp\list.php:7 Stack trace: #0 C:\xampp\htdocs\yasashiiphp\list.php(7): PDO->query('') #1 {main} thrown in C:\xampp\htdocs\yasashiiphp\list.php on line 7
回答: > > $spl = "SELECT * FROM recipes"; > > > $splという変数を定義しておきながら > > $stmt = $dbh->query($sql); > > > $sqlという変数を利用しているからです。pとqの打ち間違いですね。 本来の意味からすると$sqlの方が正しい(えすきゅーえる)ので、 ``` $sql = "SELECT * FROM recipes"; ``` とすべきでしょう。 また、エラーの意味は > > Notice: Undefined variable: sql in C:\xampp\htdocs\yasashiiphp\list.php on line 7 > > > → list.phpの7行目にあるsqlという変数は未定義です。(Noticeレベルエラー) > > Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1065 Query was empty in ~~~ > > > → list.phpの7行目のpdoにてクエリ(データベースへの問い合わせ文)が空の状態で送られました という意味です。 英語に不安であればGoogle翻訳にかけるとそこそこ分かりやすい日本語にしてくれるのでおすすめです。 またエラーメッセージをほぼそのままGoogle検索にかけると大体は解決につながる記事が出てきますので、次回からはぜひ、やってみてください。 特に「Undefined variable~~」の「未定義エラー」は最初の内はよく起きるやつです。 何も定義をしていない変数を使おうとすると出るエラーです。 ※実際に実行しようとしているSQLが正しいかどうか、対象のテーブルがデータベースに存在するかは質問者さんの環境次第です。