Как проверить наличие определенной таблице в базе данных?

Тема в разделе "Базы данных", создана пользователем kaspruk, 22 ноя 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. kaspruk

    kaspruk Постоялец

    Регистр.:
    8 янв 2007
    Сообщения:
    61
    Симпатии:
    16
    Хочу с помощью PHP проверить наличие в базе данных определенной таблицы.
    Делаю запрос к базе данных для проверки в phpMyAdmin
    SHOW TABLES FROM dbase LIKE 'no_table' - Ваш SQL-запрос был успешно выполнен, хотя таблицы no_table - нет.
    SHOW TABLES FROM dbase LIKE 'yes_table' - Ошибка, SQL-запрос: SHOW CREATE TABLE `dbase`.`TABLE_NAMES`, #1146 - Table 'dbase.table_names' doesn't exist, хотя таблица yes_table - существует.
    При подсчете количества возвращаемых строк при помощи mysql_num_rows выдает 0.
    Или может есть другой способ проверки?
     
  2. elcaste

    elcaste

    Регистр.:
    30 ноя 2007
    Сообщения:
    322
    Симпатии:
    175
    http://ua.php.net/manual/en/function.mysql-list-tables.php
    В помощь.

    PHP:
    $connect mysql_pconnect($dbhost$dbuname$dbpass); 
    if (!
    $connect) die('Could not connect: ' mysql_error()); 
    @
    mysql_select_db("$dbname") or die ("Unable to select database"); 
    $tables mysql_list_tables($dbname); 
    $num_tables = @mysql_numrows($tables); 
    $i 0
    $exist 0
    while(
    $i $num_tables

    $tablename mysql_tablename($tables$i); 
    if (
    $tablename=='table_search'$exist=1
    $i++; 

    или выполни
    SHOW TABLES like =....

    или

    SELECT table_name
    FROM information_schema.tables
    WHERE table_schema = 'databasename'
    AND table_name = 'tablename';
     
  3. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    http://forums.mysql.com/read.php?101,33936,33936#msg-33936
     
  4. volod3000

    volod3000 Писатель

    Регистр.:
    29 июн 2007
    Сообщения:
    2
    Симпатии:
    0
    А для Joomla этот способ подойдет ?
     
  5. antidote

    antidote

    Регистр.:
    21 янв 2008
    Сообщения:
    167
    Симпатии:
    42
    Этот код подойдет для всего что работает на mysql
     
  6. volod3000

    volod3000 Писатель

    Регистр.:
    29 июн 2007
    Сообщения:
    2
    Симпатии:
    0
    Для Joomla я выполнил проверку так:

    Код:
    if( mysql_num_rows( mysql_query("SHOW TABLES LIKE 'Таблица'")))
    
    и все работает на ура.:ay:
     
Статус темы:
Закрыта.