Как определить, включен ли PDO в PHP? - PullRequest
34 голосов
/ 24 мая 2011

Есть ли команда PHP, которую я могу использовать, чтобы определить, включен или отключен PDO?

Я знаю, что вручную запускаю phpinfo () и смотрю на него, но у меня есть скрипт, на котором я запускаю различные веб-серверы, которые отображают выбранные параметры конфигурации PHP для сервера.

Итак, я смотрю, есть ли команда, которую я могу использовать.

Ответы [ 7 ]

54 голосов
/ 24 мая 2011

Надлежащим способом определения этого будет использование функции extension_loaded : -

if ( extension_loaded('pdo') ) {
    .......
}

И вы также можете проверить наличие базы данныхДрайвер PDO использует: -

if ( extension_loaded('pdo_<database type here>') ) { // e.g., pdo_mysql
    .......
}
40 голосов
/ 24 мая 2011

Проверьте, существует ли класс:

if (class_exists('PDO'))

Я ценю поддержку и все возражения, которые я все еще получаю, но, пожалуйста, проверьте ответ Салмана Аббаса для правильного способа сделать это.

8 голосов
/ 04 января 2016

Просто запустите команду как php -m из командной строки, которая отобразит список модулей, установленных для PHP

6 голосов
/ 24 мая 2011

У вас есть два варианта:

if (extension_loaded('pdo')) { /* ... */ }

Или (это не на 100% надежно, поскольку его можно реализовать в классах пользователей):

if (class_exists('PDO', false)) { /* ... */ }

Лично я предпочитаю первый вариант.

3 голосов
/ 21 марта 2012
if (!defined('PDO::ATTR_DRIVER_NAME')) {
echo 'PDO unavailable';
}
elseif (defined('PDO::ATTR_DRIVER_NAME')) {
echo 'PDO available';
}

Я надеюсь, что это работает

1 голос
/ 24 мая 2011

Как насчет

if (in_array('pdo', get_loaded_extensions())) {
   ... pdo is there ...
}
0 голосов
/ 27 мая 2019

Опция, которая работает для любого модуля:

php -i | grep -i "Your module name"

Это позволяет вам узнать, включен ваш модуль или нет, но вы все равно должны попробовать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...