Я пробовал всевозможные вещи, чтобы переименовать таблицу из 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), чтобы выяснить, какая ошибка возвращается, и затем действовать в соответствии с ней.