Проверить, существует ли база данных и / или таблица

Я пытаюсь написать простой установочный скрипт с использованием Zend Framework. Предполагается, что он проведет несколько тестов:

  • проверьте, существует ли база данных, указанная в application.ini (или есть ли к ней доступ).
  • если да, проверьте, существует ли таблица с именем user в базе данных
  • , если это так, проверьте, есть ли пользователь с правами администратора сайта

. Если какой-либо из шагов не удастся, контроллер позаботится о перенаправлении пользователя на соответствующий этап процесса установки.

Я создал модель со следующим кодом:

public function verify () {
    $db = $this->getDefaultAdapter(); //throws exception
    if ($db == null) return self::NO_BATABASE;
    $result = $db->describeTable('user'); //throws exception
    if (empty($result)) return self::NO_USER;
    $result = $db->fetchRow('SELECT * FROM user WHERE id = 1');
    if ($result == null) return self::USER_EMPTY;
    else return self::OK;
}

Однако я переоценил функции, которые использовал. getDefaultAdapter () может вернуть null , но в случае отсутствия базы данных для подключения создается исключение. То же самое происходит с describeTable () , который вызывает исключение вместо возврата пустого массива.

У меня возникает вопрос: как мне проверить, существует ли база данных / таблица, не получив исключения или ошибки?

7
задан meagar 22 February 2011 в 13:34
поделиться