ФорумРазработкаБазы данных → MySQL. Как проверить существует ли таблица в бд?

MySQL. Как проверить существует ли таблица в бд?

  • Frozzeg

    Сообщения: 5641 Репутация: N Группа: Джедаи

    Spritz 18 октября 2011 г. 7:10, спустя 3 минуты 28 секунд


    select * from `table` limit 1

    проверить на ошибку. годится для любой SQL-бд


    Ничего не выдает)


    у него ничего не выдает
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • Tekuto

    Сообщения: 1147 Репутация: N Группа: Адекваты

    Spritz 18 октября 2011 г. 12:49, спустя 5 часов 39 минут 34 секунды

    select * from `table` limit 1
    проверить на ошибку. годится для любой SQL-бд


    у него ничего не выдает


    Покатался но вечернему городу, проветрился. Попробовал снова этот способ. Видно до этого где-то в коде накосячил.
    Сейчас так

    $myrows = $wpdb->query("select * from `wp_wpsc_region_tax` limit 1");
    if (!$myrows) {
    echo 'Ошибка выполнения запроса: ' . mysql_error();
    exit(); }


    В итоге плагин не активируется и не исполняется код, если таблицы не существует - то, что надо. Но и при наличии пустой таблицы `wp_wpsc_region_tax` также не активируется плагин. Причем никакой ошибки не выползает. Поэтому пробую способ phpdude, но видно у меня с реализацией проблемы.
  • Tekuto

    Сообщения: 1147 Репутация: N Группа: Адекваты

    Spritz 18 октября 2011 г. 13:09, спустя 19 минут 22 секунды

    $myrows = $wpdb->query("show tables like 'wp_wpsc_region_tax'");
    if ($myrows != 1) {

    echo 'Для работы данного плагина необходимо установить плагин WP e-Commerce. Установите его и попробуйте снова.';
    exit();

    }


    Вот так переписал свой код. Вроде работает нормально.
    Ivan, почему это неправильно?
  • Ivan

    Сообщения: 1316 Репутация: N Группа: Адекваты

    Spritz 18 октября 2011 г. 14:16, спустя 1 час 7 минут 32 секунды

    >годится для любой SQL-бд
    limit не везде есть
  • master

    Сообщения: 3236 Репутация: N Группа: Джедаи

    Spritz 18 октября 2011 г. 15:32, спустя 1 час 15 минут 20 секунд

    limit не везде есть

    а где его нет? он же в ansi-стандарте вроде, не?

    $myrows = $wpdb->query("show tables like 'wp_wpsc_region_tax'");
    if ($myrows != 1) {


    mysqli_query("select …");
    if (mysqli_error()){
    // тут надо проверить что это именно отсутствие таблицы, а не база отвалилась
    // поэтому корректнее всё же создать для каждого типа БД свою процедуру проверки
    // для mysql тут уже написали, но можно ещё глянуть в information_schema
    }
    не всё полезно, что в swap полезло
  • Ivan

    Сообщения: 1316 Репутация: N Группа: Адекваты

    Spritz 18 октября 2011 г. 22:59, спустя 7 часов 27 минут 24 секунды

  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 19 октября 2011 г. 1:46, спустя 2 часа 46 минут 34 секунды

    а где его нет?

    неа далеко не везде..
    Сапожник без сапог
  • master

    Сообщения: 3236 Репутация: N Группа: Джедаи

    Spritz 19 октября 2011 г. 2:00, спустя 14 минут 25 секунд

    неа далеко не везде..

    понял уже.
    да и хуй с ним
    не всё полезно, что в swap полезло

Пожалуйста, авторизуйтесь, чтобы написать комментарий!