Можете ли вы УДАЛИТЬ ТАБЛИЦУ, ЕСЛИ ОНА СУЩЕСТВУЕТ, указав имя базы данных с помощью table?

#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`