Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Проверка из ПХП на существование таблицы в Мускуле


Автор: -=Ustas=- 29.4.2005, 09:25
Hi!
Скажите, как можно из ПХП проверить, существует ли определенная таблица в Мускуле или нет?
Сеньки.

Автор: IZ@TOP 29.4.2005, 09:45
Код

$q = mysql_query('show tables');
while($n = mysq_fetch_row($q)) { $tables[$n] = 1; }
if(isset($tables['my_tablename'])) {
   echo 'my_tablename is exists';
}


Ну наверное такой код должен подойти.

Автор: skalex 29.4.2005, 09:46
Решение в лоб ...
Выполнить запрос "SHOW TABLES" или используя функцию http://ru.php.net/manual/ru/function.mysql-list-tables.php, перебором проверить существование таблицы.

Автор: IZ@TOP 29.4.2005, 09:53
Цитата(Mace @ 29.4.2005, 10:46)
или используя функцию mysql_list_tables, перебором проверить

Тогда все упрщается:

Код

$tables = array_flip(mysql_list_tables('dbname', $link));
if(isset($tables['my_tablename'])) {
   echo 'my_tablename is exists';
}

Автор: skalex 29.4.2005, 12:37
IZ@TOP, постой, mysql_list_tables возвращает не массив, поэтому array_flip здесь не прокатит.... Но общий смысл вполне понятен! smile

Автор: IZ@TOP 29.4.2005, 12:41
Mace... а что он возвращает??? а... все, понял. smile Тогда по типу первого варианта smile

Автор: Irokez 29.4.2005, 13:01
Код

show tables from `database` like 'table_name' ;

Автор: Mal Hack 29.4.2005, 13:02
А зачем память грузить?
не проще выполнит
SELECT `*` FROM `table`
и затем проверить mysql_error() на 0??

Цитата(Mace @ 29.4.2005, 10:46)
или используя функцию mysql_list_tables

Не рекомендуют ее использовать.

Автор: -=Ustas=- 1.5.2005, 07:53
Сеньки всем!
Все пучком!
Добавлено @ 07:59
Да, и еще, что здесь с форумом случилось? Не приходят уведомления на мыло, хотя подпись на ответы ставлю!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)