前提・実現したいこと
$_SESSION の変数をPHP/MYSQLのprepareに入力するとエラーになります。
原因を教えてくれませんでしょうか。
なお、$_SESSION['fy']には、
string(6) "fy2020"
となっており値は入っています。
発生している問題・エラーメッセージ
<b>Fatal error</b>: 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 MariaDB server version for the right syntax to use near '? WHERE sp_no = ?' at line 1 in C:\xampp\htdocs\personal\order\php\dbsearch.php:16
Stack trace:
#0 C:\xampp\htdocs\personal\order\php\dbsearch.php(16): PDO->prepare('SELECT business...')
#1 {main}
thrown in <b>C:\xampp\htdocs\personal\order\php\dbsearch.php</b> on line <b>16</b><br />
該当のソースコード
$stmt = $db->prepare('SELECT business_no, customer_name, order_name FROM ? WHERE sp_no = ?'); $stmt->bindParam(1, $_SESSION['fy'], PDO::PARAM_STR); $stmt->bindParam(2, $_POST["sp_no"], PDO::PARAM_STR); //OK $stmt->execute();
試したこと
以下の記載は問題ありません。
$stmt = $db->prepare('SELECT business_no, customer_name, order_name FROM fy2020 WHERE sp_no = ?'); $stmt->bindParam(1, $_POST["sp_no"], PDO::PARAM_STR); //OK $stmt->execute();
補足情報(FW/ツールのバージョンなど)
回答2件
あなたの回答
tips
プレビュー