Je veux utiliser PDO mais je ne suis pas sûr que mon hébergement l'ait configuré correctement.
Comment puis-je tester, en PHP, s'il est configuré et fonctionne pour MySQL?
En plus d'utiliser phpinfo () pour voir s'il est correctement répertorié
if (!defined('PDO::ATTR_DRIVER_NAME')) {
echo 'PDO unavailable';
}
PDO est toujours installé pour php 5.1+. Vous pouvez rechercher des pilotes de base de données spécifiques installés ou non à l'aide de phpinfo (); Vous pouvez essayer de rechercher des pilotes spécifiques en utilisant @Mark Baker idea et en recherchant des constantes spécifiques.
var_dump(defined(PDO::MYSQL_ATTR_LOCAL_INFILE)); // mysql
var_dump(PDO::FB_ATTR_TIME_FORMAT)); // firebird
Notez que tous les pilotes n’ont pas de constantes spécifiques définies, donc phpinfo () reste la meilleure solution.
En utilisant la ligne de commande, vous pouvez vérifier en utilisant:
$ php -m
Au lieu de phpinfo (), vous pouvez utiliser:
extension_loaded ('PDO' ); // returns boolean
// or
extension_loaded('pdo_mysql');
// or get all extensions and search for a specific one
get_loaded_extensions();
Essaye ça
print_r(PDO::getAvailableDrivers());
devrait donner les applications supportées par PHP
Array ( [0] => mysql [1] => sqlite )
Utilisation de la ligne de commande pour PDO:
php -m|grep -i pdo
Pour PDO avec support MySQL:
php -m|grep -i pdo_mysql
Pour installer le support php mysql, recherchez le nom du paquet (Ubuntu):
apt-cache search php5*|grep mysql
Et installez-le si ce n'est déjà fait (Ubuntu):
Sudo apt-get install php5-mysql
Créez un fichier qui contient
<?php
phpinfo();
?>
Il vous montrera si PDO (et d'autres fonctionnalités sont activées)
Pour les serveurs Windows, les éléments suivants ont été utiles pour vérifier quelles extensions PDO sont chargées à partir de l'invite de commande:
php -m|findstr -i pdo_
Sur mon système, cette commande génère les résultats suivants:
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite