mysql编写语句“truncate table?”返回null

时间:2013-07-25 10:01:38

标签: php mysql prepared-statement

在截断表格的函数中我可以使用

$stmt = $mysqli->prepare("truncate table packed_items");

和$ stmt设置为mysqli_stmt对象,但是 如果我尝试

$stmt = $mysqli->prepare("truncate table ?");

然后将$ stmt设置为null并且语句:

$stmt->bind_param("s", $mytable)

会因错误而崩溃  在

中的非对象上调用成员函数bind_param()

我正在使用参数化的预准备语句来选择,插入和更新,没有任何问题。

1 个答案:

答案 0 :(得分:1)

你不能绑定任何SQL文字而是绑定数据。没有关键字,没有操作员,没有标识符。

如果你真的需要动态地截断你的表,已经知道没有名字了(因为随机截断表显然是设计非常糟糕的表现),检查表名对白名单,正确格式化,然后插入请求参数。