如何在 php 中重命名 mysql 表?

如何在 php 中重命名 mysql 表?

我尝试了各种方法来从 php 重命名表,包括 mysqli(下面的代码)和 mysql_connect/mysql_query。我尝试了重命名表和更改表。在下面的示例中,执行它时没有错误。但是,当我查看时,“trac”表仍然在那里,末尾没有“2”。

$link = mysqli_connect("lamp1", "user", "pw", "db");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
if ($stmt = mysqli_prepare($link, "rename table trac to trac2")) {
 mysqli_stmt_execute($stmt);
}
else
 echo "error";

这是 Windows Server 2008 机器上的 xampp(最新版本)。Mysql 5.0.7,php 5.3.4。

我可以通过 phpMyAdmin 毫无问题地重命名表!

我可以检查/尝试什么?是否有一个日志文件可以打开/查看以查看 mysql 端发生了什么?

答案1

使用 mysqli_stmt_error($stmt) 找出返回的错误,然后采取行动。

答案2

引用自 MySQL 手册

执行 RENAME 时,您不能有任何锁定的表或活动事务。您还必须对原始表具有 ALTER 和 DROP 权限,对新表具有 CREATE 和 INSERT 权限。

因此很有可能是用户user没有正确的权限。

相关内容