Как проверить, что PDO SQLite доступен?
Примеры проверки доступности расширения 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