Как проверить наличие таблицы в БД?

Допустим я хочу сделать проверку на наличие таблиц в бд и если той или иной таблицы нет создать её, как проверить наличие таблицы в БД?
  • Вопрос задан
  • 8523 просмотра
Пригласить эксперта
Ответы на вопрос 4
@cicatrix
было бы большой ошибкой думать
Простите, не удержался :)
if(mysql_query("DROP TABLE `таблица`")){echo "Таблица существовала...";}
Ответ написан
Комментировать
CREATE TABLE IF NOT EXISTS `table_name` (...
Ответ написан
Комментировать
Immortal_pony
@Immortal_pony Куратор тега MySQL
SELECT 
	IF(COUNT(*)>0, 'Yes', 'No') AS 'Existance' 
FROM  
	`information_schema`.`TABLES` 
WHERE 1 
	AND `TABLE_SCHEMA`='YOUR SCHEMA' #подставьте сюда название своей схемы
	AND `TABLE_NAME`='YOUR TABLE'  #подставьте сюда название свое таблицы
Ответ написан
Комментировать
Fortoo
@Fortoo
Top-Web OpenCart
К примеру проверка перед удалением (методы OpenCart)

$result = $this->db->query("SELECT * FROM `table_name`");
if ($result->num_rows) {
    $this->db->query("DROP TABLE `table_name`");
}
Но... может быть ошибка.
Ошибка возникает когда мы пытаемся получить или удалить не существующую таблицу!

Можно сделать проверку через SHOW, но тоже будет ошибка, если таблица не существует!
$result = $this->db->query("SHOW TABLES LIKE `table_name`");
if ($result->num_rows) {
    ...
}


Ошибка- потому-что к такому запросу нужны одинарные кавычки, а не обратные
$result = $this->db->query("SHOW TABLES LIKE 'table_name'");
if ($result->num_rows) {
    ...
}


В данном случае лучше так
$this->db->query("DROP TABLE IF EXISTS `table_name`");

Евгений прав)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы