PDO prepare プリペアドステートメント使用時のエラー

前提

PDOでSQL文を実行時にエラーが出てしまい、解決できません。
アドバイスをいただけると助かります。
よろしくお願いします。

実現したいこと

発生している問題・エラーメッセージ

Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':shop_id' at line 1

該当のソースコード

PHP

//セッションの値を受け取る$shop_id = $_SESSION[ 'shop_id' ]; $sql = "SELECT * FROM message WHERE shop_id = :shop_id"; $prepare = $dbh->query( $sql );$prepare -> bindValue(':shop_id', $shop_id);$prepare->execute();$count = $prepare->rowCount(); //データ数を取得

試した事

PHP

//セッションの値を受け取る$shop_id = $_SESSION[ 'shop_id' ]; $sql = "SELECT * FROM message WHERE shop_id = ".$shop_id; $prepare = $dbh->query( $sql );$prepare->execute();$count = $prepare->rowCount(); //データ数を取得

これだとエラーは出ないです。

コメントを投稿

0 コメント