2012-03-03 2 views
4

я хочу переименовать существующую таблицу с помощью SQL-оператора:Переименовать таблицу MySQL с помощью SQL заявления

Я уже пробовал:

1)mysql_query("RENAME '$renameFolder' TO '$newName'"); 
2)mysql_query("ALTER TABLE '$renameFolder' RENAME TO '$newName'"); 
3)mysql_query("RENAME TABLE '$renameFolder' TO '$newName'"); 

Использование любого из 3-х заявлений IM всегда получает то же сообщение об ошибке :

"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax" 

Пожалуйста, расскажите мне, что я делаю неправильно!

+0

Try: "RENAME TABLE $ renameFolder TO $ NEWNAME" – EricSonaron

+0

** ПРЕДУПРЕЖДЕНИЕ **: 'mysql_query' является устаревшим интерфейсом и не должны использоваться в новых приложениях, как это удаляется в будущих версиях PHP. Современная замена, такая как [PDO, не трудно учиться] (http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/). Если вы новичок в PHP, руководство, подобное [PHP The Right Way] (http://www.phptherightway.com/), может помочь объяснить лучшие практики. – tadman

ответ

4

Попробуйте использовать обратные кавычки вместо например .:

mysql_query("RENAME TABLE `" . $renameFolder . "` TO `" . $newname . "`"); 
+0

Я думаю, что это так. логически мы должны деформировать имя таблицы между «нет». – artragis

+0

просто попробовал. Та же ошибка :( – user1216858

+0

Я попробовал это самостоятельно и удалил кавычки, исправил его. Я подозреваю, что у вас есть не буквенно-цифровые символы в имени вашей таблицы. Попробуйте это с помощью 'quotes вместо as atragis said. – Overv

0

Попробуйте без кавычек, так что окончательный запрос будет выглядеть следующим образом:

mysql_query ("ALTER TABLE foo RENAME TO bar"); 

Надеется, что это помогает.

+0

Я пробовал он без кавычек.Такая ошибка ... – user1216858

1

Вы были подключены к серверу правильно?

Вы выбрали db, в котором находится таблица?

Если у вас есть, то вы должны быть в состоянии выполнить это:

mysql_query("ALTER TABLE table_name RENAME TO new_table_name"); 
+0

Да, в таблице есть. Я использовал этот оператор и не работал для меня. – user1216858

+0

Затем вам нужно поставить '' вокруг имен таблиц или объединить строки с переменными, как предложено by Overv. – David

1

для MySQL запрос для переименования таблицы
RENAME TABLE old_name TO new_name

2

appected ответ от Mysqli:

$db=mysqli_connect("localhost","root","password","database"); 
$oldFolder="old_table_name"; 
$newname="new_table_name"; 
mysqli_query($db,"RENAME TABLE `" . $oldFolder . "` TO `" . $newname . "`"); 

Удачи!

0
RENAME TABLE `jshop`.`mob_apple` TO `jshop`.`item_mobile`; 
Смежные вопросы