mysqli->准备创建表的问题

时间:2015-02-01 18:23:07

标签: php mysql mysqli prepared-statement

我正在尝试使用mysqli->prepare创建一个表,但在准备语句时会出错。 我的发言如下:

$mysqli->prepare("CREATE TABLE ? (id INT AUTO_INCREMENT NOT NULL, PRIMARY KEY (id))");

然后我只是将表名绑定到它

$mysqli->bind_param("s", $some_name);

执行它。

$mysqli->execute();

我得到的错误是:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? (id INT AUTO_INCREMENT NOT NULL, PRIMARY KE' at line 1

你能帮助我吗?

2 个答案:

答案 0 :(得分:2)

请参阅 http://php.net/manual/en/mysqli-stmt.prepare.php

  

通常,参数仅在数据操作语言(DML)语句中是合法的,而不是在数据定义语言(DDL)语句中。

答案 1 :(得分:0)

这似乎已经得到了回答。 Can I parameterize the table name in a prepared statement? 您无法绑定表名