-3

问题

运行表名参数化的 PDO 语句时出现PDO 语法错误,例如

$sql = 'DELETE FROM :table_name';
$query = $this->db->prepare($sql);
$query->execute(array(':table_name' => "mytable"));

我可以用 SELECT 等重现问题,所以这是一个普遍问题。我试着用反引号写它,在它前面加上数据库名称,两者的组合等等,没有任何效果。

问题

这个怎么做 ?

4

2 回答 2

5

您不能参数化表名、列名或IN子句中的任何内容(必须单独绑定)。请参阅php.net上的评论。

另请参阅:PHP PDO 语句可以接受表名或列名作为参数吗?

于 2013-10-16T13:31:13.893 回答
0

您不能使用 PDO 和 MySQLi 准备语句对表名进行参数化,因为 SQL Server 在执行实际查询之前需要基本信息来准备查询。

于 2013-10-16T13:31:52.973 回答