运行PDO语句时出现 PDO语法错误,其中表名已参数化,如
$sql = 'DELETE FROM :table_name';
$query = $this->db->prepare($sql);
$query->execute(array(':table_name' => "mytable"));
我可以用SELECT等重现问题,所以这是一个普遍的问题。 我试着用反引号写它,前面有数据库名,两者结合等,没什么用。
怎么做?
答案 0 :(得分:5)
您无法参数化IN
子句中的表名,列名或任何内容(它必须单独绑定)。请参阅this上的php.net评论。
另请参阅:Can PHP PDO Statements accept the table or column name as parameter?
答案 1 :(得分:0)
您无法使用PDO和MySQLi预处理语句对表名进行参数化,因为SQL Server在执行实际查询之前需要基本信息来准备查询。