28

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?

2
  • Should PDO not be available, you could fall back on xpdo.org (emulates API). Commented Jun 28, 2010 at 13:47
  • 1
    stackoverflow.com/questions/6113262/… Commented May 25, 2011 at 16:10

6 Answers 6

40

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(); 
Sign up to request clarification or add additional context in comments.

Comments

33

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

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

Comments

16

Try this

print_r(PDO::getAvailableDrivers()); 

should give applications supported by PHP

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

1 Comment

This is a better answer, will list all available not just one.
8

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 

1 Comment

It should be noted that these commands only work on *nix systems (this may not be immediately obvious to someone new to web server administration). there are some alternatives for the grep command, but sudo and apt-get are different animals. Yes, I know that this is obvious to most, but as I said, not to all.
4

Create a file that contains

<?php phpinfo(); ?> 

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

Comments

0

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

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.