我正在尝试使用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
你能帮助我吗?
答案 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? 您无法绑定表名