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 端發生了什麼?
使用 mysqli_stmt_error($stmt) 找出返回的錯誤,然後採取行動。
引用 MySQL 手冊
執行 RENAME 時,不能有任何鎖定的表或活動事務。您還必須擁有對原始表的 ALTER 和 DROP 權限,以及對新表的 CREATE 和 INSERT 權限。
所以很有可能使用者
user
沒有正確的權限。