Simple placeared语句,占位符不起作用

时间:2016-03-02 14:32:01

标签: php pdo prepared-statement

所以我想知道为什么这个准备好的声明不起作用

$makr = 'users';
$stm = $con->prepare("SELECT * FROM ?");
$stm->bindparam(1, $makr);
$stm->execute();

我一直收到这个错误。

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S02]: Base table or view not found: 1146 Table 'dd23834_house.'users'' doesn't exist' in /nfs/c11/h05/utt/23824/domains/.../html/home.php:77 Stack trace: #0 /nfs/c11/h05/utt/23824/domains/.../html/home.php(77): PDOStatement->execute() #1 {main} thrown in /nfs/c11/h05/utt/23824/domains/.../html/home.php on line 77

是的我有一个名为Users的表。

我只想从用户数据库中获取所有内容,我没有where子句,但我也希望它是安全的。

1 个答案:

答案 0 :(得分:1)

表和列名称不能由PDO中的参数替换。你能做的是:

$makr = 'users';
$stm = $con->prepare("SELECT * FROM $makr");
$stm->execute();
相关问题