#php #mysql #sql-drop
#php #mysql #sql-drop
Вопрос:
Я пытаюсь удалить таблицу в базе данных с помощью следующего оператора запроса:
mysql_query('DROP TABLE IF EXISTS "dbName.tableName"') or die(mysql_error());
Но я продолжаю получать ошибку. Кто-нибудь знает, является ли указание dbName.tableName недопустимым?
Комментарии:
1. В чем ошибка? У вас есть разрешение удалить эту таблицу?
2. Я предполагаю, что вам нужно переключить двойные и одинарные кавычки. Но я хотел бы увидеть ошибку.
3. У вас ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с ‘»dbName.tableName»‘ в строке 1
Ответ №1:
mysql_query('DROP TABLE IF EXISTS `dbName`.`tableName`') or die(mysql_error());
Комментарии:
1. хорошо … я попробую — по сути, вы заявляете, что двойные кавычки не будут работать… Я вернусь через мгновение
2. Вау .. не знал, что в некоторых mysql_queries — двойные кавычки не нравятся. Спасибо @Emmerman!
3. Дело не только в двойных кавычках — вы должны заключать имя базы данных в кавычки отдельно от имени таблицы.
4. Да, я видел это — и опять же, этого тоже не знал.
5. Проголосовал здесь и отмечен как ответ, потому что @Emmerman опубликовал первым
Ответ №2:
Вы должны использовать обратные кавычки вместо двойных кавычек, подобных этому:
mysql_query('DROP TABLE IF EXISTS `dbName`.`tableName`');
Комментарии:
1. Там, где две проблемы с вашим исходным кодом. Во-первых, вы должны указать dbName и tableName отдельно. Во-вторых, вы используете только одинарные или двойные кавычки для строк. Для идентификаторов, таких как имена таблиц и столбцов, вы используете обратную метку: dev.mysql.com/doc/refman/5.0/en/identifiers.html
Ответ №3:
Вы не можете использовать двойные кавычки для заключения имен БД / таблиц, вместо этого вы либо оставляете их без кавычек, либо используете обратные метки. Но, отвечая на ваш вопрос, да, указать имя базы данных вполне допустимо.
DROP TABLE `dbName`.`tableName`