H. Ferrence
H. Ferrence

Reputation: 8116

How to determine if PDO is enabled in PHP?

Is there a PHP command I can use to determine if PDO is enabled or disabled?

I know I an manually run phpinfo() and eyeball it, but I have a script I run various web servers that display selected PHP configuration settings for the server.

So I am looking to see if there is a command I can use.

Upvotes: 39

Views: 44629

Answers (7)

saurabh kamble
saurabh kamble

Reputation: 1549

For checking it on linux terminal level using above command

php -m

which would give output related to modules installed from your php.inienter image description here

Upvotes: 0

GolezTrol
GolezTrol

Reputation: 116140

Check if the class exists:

if (class_exists('PDO'))

I appreciate the support and all the upvotes I still get, but please check Salman Abbas's answer for the proper way to do this.

Upvotes: 42

Prashant Agrawal
Prashant Agrawal

Reputation: 381

Just run the command as php -m from the command prompt which will display list of modules installed for PHP

Upvotes: 14

Celmaun
Celmaun

Reputation: 24762

The proper way of determining that will be using the extension_loaded function:-

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

And you might also want to check for the database-specific PDO driver using:-

if ( extension_loaded('pdo_<database type here>') ) { // e.g., pdo_mysql
    .......
}

Upvotes: 63

krishna
krishna

Reputation: 960

if (!defined('PDO::ATTR_DRIVER_NAME')) {
echo 'PDO unavailable';
}
elseif (defined('PDO::ATTR_DRIVER_NAME')) {
echo 'PDO available';
}

I hope this works

Upvotes: 3

Alix Axel
Alix Axel

Reputation: 154603

You have two options:

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

Or (this one is not 100% reliable since it can be implemented in user-land classes):

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

Personally, I prefer the first option.

Upvotes: 7

Marc B
Marc B

Reputation: 360762

How about

if (in_array('pdo', get_loaded_extensions())) {
   ... pdo is there ...
}

Upvotes: 1

Related Questions