php bindParam语法错误

时间:2015-02-04 00:35:27

标签: php mysql pdo

在PHP中使用bindParam与PDO / mysql时遇到问题。

这是我的简化代码,它仍会产生错误:

$tableID = "bmb_job";
$columnName = "job_id";
$recordID = 1;
$stmt = $dbh->prepare('SELECT * FROM ? WHERE ? = ? LIMIT 1'); 
$stmt->bindParam(1, $tableID);
$stmt->bindParam(2, $columnName);
$stmt->bindParam(3, $recordID, PDO::PARAM_INT);
$stmt->execute(); 
$jobArray = $stmt->fetch();

错误:

  

致命错误:带有消息'SQLSTATE [42000]的未捕获异常'PDOException':语法错误或访问冲突:1064 SQL语法中有错误;检查与您的MySQL服务器版本相对应的手册,以便在'bmb_job'附近使用正确的语法。在/home/danny/public_html/bmbbooking/ajax/getuser.php的第1行'中'job_id'= 1 LIMIT 1': 21堆栈跟踪:#0 /home/danny/public_html/bmbbooking/ajax/getuser.php(21):PDOStatement->执行()#1 {main}抛出/ home / danny / public_html / bmbbooking / ajax / getuser第21行的.php

最初我认为它与它有关,认为$ recordID是一个字符串,但据我所知,MySQL不喜欢'在它的查询中,只有反引号......我通过在phpMyAdmin中运行查询来测试它,查询以'bmb_job' WHERE 'job_id' = 1 LIMIT 1失败,但与反引号

一起使用

在我$stmt = $dbh->prepare('SELECT * FROM $tableID WHERE $columnName = $recordID LIMIT 1');之前它确实有效,但如果可以,我想使用bindParam。

0 个答案:

没有答案