我想在一个MySQL数据库重命名表,从PHP,但是这个代码不工作:RENAME TABLE/ALTER TABLE不工作
$sql = "RENAME TABLE dbname.table TO dbname.tabletmp;";
$conn->query($sql);
我试图也用ALTER TABLE
或表名为''
,但没有。有任何想法吗?
看来,在PHP ALTER TABLE
不是命令:/
我想在一个MySQL数据库重命名表,从PHP,但是这个代码不工作:RENAME TABLE/ALTER TABLE不工作
$sql = "RENAME TABLE dbname.table TO dbname.tabletmp;";
$conn->query($sql);
我试图也用ALTER TABLE
或表名为''
,但没有。有任何想法吗?
看来,在PHP ALTER TABLE
不是命令:/
试试这个
$sql = "RENAME TABLE `" . $oldname . "` TO `" . $newname . "`" ;
$conn->query($sql);
为什么要这样工作? – axiac
看来,在PHP ALTER TABLE不是命令:/
PHP不关心SQL。即使$conn->query()
关心它。你传递一个字符串并将其传递给服务器。
确保您使用连接的用户有必要的权限重命名表。 documentation of RENAME TABLE
说:
当您执行
RENAME TABLE
时,您不能有任何锁定表或活动事务。您还必须拥有原始表上的ALTER
和DROP
权限以及新表上的CREATE
和INSERT
权限。
你得到一些异常或错误信息? 重命名表语法看起来很好。更改表格不能用于重命名表格。 –
你收到任何错误信息? –
这【答案】(https://stackoverflow.com/a/37786534/5513005)可以帮助你的 –