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?
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
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
Create a file that contains
<?php
phpinfo();
?>
It will show you if PDO (and other features are enabled)
Aside from using phpinfo() to see if it's correctly listed
if (!defined('PDO::ATTR_DRIVER_NAME')) {
echo 'PDO unavailable';
}
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();
Try this
print_r(PDO::getAvailableDrivers());
should give applications supported by PHP
Array ( [0] => mysql [1] => sqlite )