ohho
ohho

Reputation: 51941

php code to test pdo is available?

I want to use PDO but I'm not sure whether my hosting has set it up properly.

How can I test, in PHP, whether it is setup and working for MySQL?

Upvotes: 28

Views: 54080

Answers (6)

Dave Morton
Dave Morton

Reputation: 691

For Windows servers, I've found the following useful for checking which PDO extensions are loaded from the command prompt:

php -m|findstr -i pdo_

On my system, that command nets me the following results:

pdo_mysql PDO_ODBC pdo_pgsql pdo_sqlite

Upvotes: 0

Tareq
Tareq

Reputation: 5363

Using command line, for PDO:

php -m|grep -i pdo

For PDO with MySQL support:

php -m|grep -i pdo_mysql

To install php mysql support, search for the package name (Ubuntu):

apt-cache search php5*|grep mysql

And install it if not already did (Ubuntu):

sudo apt-get install php5-mysql

Upvotes: 8

rizon
rizon

Reputation: 8187

Try this

print_r(PDO::getAvailableDrivers());

should give applications supported by PHP

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

Upvotes: 16

Elzo Valugi
Elzo Valugi

Reputation: 27876

PDO is always installed for php 5.1+. You can check for specific db drivers that are installed or not using phpinfo(); You could try to check for specific drivers using @Mark Baker idea and checking for specific constants;

var_dump(defined(PDO::MYSQL_ATTR_LOCAL_INFILE)); // mysql
var_dump(PDO::FB_ATTR_TIME_FORMAT)); // firebird

Note that not all drivers have specific constants defined so phpinfo() remains best solution.

Using command line you can check using:

$ php -m

As an alternative of phpinfo() you can use:

extension_loaded ('PDO' ); // returns boolean
// or
extension_loaded('pdo_mysql');
// or get all extensions and search for a specific one
get_loaded_extensions(); 

Upvotes: 40

Mark Baker
Mark Baker

Reputation: 212452

Aside from using phpinfo() to see if it's correctly listed

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

Upvotes: 33

DrColossos
DrColossos

Reputation: 12998

Create a file that contains

<?php

phpinfo();

?>

It will show you if PDO (and other features are enabled)

Upvotes: 4

Related Questions