Назад | Перейти на главную страницу

Как переименовать таблицу mysql в php?

Я пробовал всевозможные вещи, чтобы переименовать таблицу из 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";

Это xampp (последняя версия) на компьютере с Windows Server 2008. MySQL 5.0.7, PHP 5.3.4.

Я могу без проблем переименовать таблицу через phpMyAdmin!

Что я могу проверить / попробовать? Есть ли файл журнала, который я могу включить / посмотреть, чтобы узнать, что происходит со стороны mysql?

цитируется из руководства MySQL

Когда вы выполняете RENAME, у вас не может быть заблокированных таблиц или активных транзакций. У вас также должны быть привилегии ALTER и DROP для исходной таблицы и привилегии CREATE и INSERT для новой таблицы.

Поэтому весьма вероятно, что пользователь user не имеет правильных привилегий.

Используйте mysqli_stmt_error ($ stmt), чтобы выяснить, какая ошибка возвращается, и затем действовать в соответствии с ней.