所以我想知道为什么这个准备好的声明不起作用
$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子句,但我也希望它是安全的。
答案 0 :(得分:1)
表和列名称不能由PDO中的参数替换。你能做的是:
$makr = 'users';
$stm = $con->prepare("SELECT * FROM $makr");
$stm->execute();