Как проверить, что PDO SQLite доступен?

database flat icon Примеры проверки доступности расширения PHP Data Object и PDO-драйверов (например, SQLite) в PHP. Знакомство с функциями: get_loaded_extensions (список скомпилированных и загруженных модулей) и extension_loaded, а также PDO::getAvailableDrivers() (массив доступных драйверов PDO) и PDOException.

Расширение PDO (PHP Data Object) это простой и согласованный интерфейс доступа к базам данным в PHP. Правда чтобы им воспользоваться, понадобится соответствующий PDO драйвер конкретной СУБД.

Просмотреть список всех скомпилированных и загруженных модулей в PHP позволяет функция get_loaded_extensions():

print_r(get_loaded_extensions());

В результате нас интересует то, что связано с PDO:

Array
(
  ...
  [25] => PDO
  ...
  [40] => pdo_mysql
  [41] => pdo_pgsql
  [42] => pdo_sqlite
)

Таким образом, можно легко задать условие проверки доступности расширения PDO и требуемого PDO драйвера, используя функцию extension_loaded():

if(
  !extension_loaded('PDO') ||
  !extension_loaded('pdo_sqlite')
) die('PDO extension or SQLite PRO driver not loaded.');

Впрочем, и само расширение PDO имеет функцию getAvailableDrivers(), которая возвращает массив доступных драйверов PDO:

Array
(   [0] => mysql   [1] => pgsql   [2] => sqlite )

Правда использование исключений при обработке ошибок несколько увеличивает количество действий:

if( !extension_loaded('PDO') ) die('PDO extension not loaded.');
else {
  try {
    if ( !in_array('sqlite', PDO::getAvailableDrivers()) ){
      throw new PDOException('SQLite PDO driver not available.');
    }
  } catch ( PDOException $e ){
    die($e->getMessage());
  }
}

Короткая ссылка: http://goo.gl/mpA6f4

seoonly.ru
seoonly.ru комментирует...

Спасибо-)

игорь чернацкий
игорь чернацкий комментирует...

Благодарю Вас!