web-dev-qa-db-fra.com

PDOException “impossible de trouver le pilote” en php

J'ai installé Lampp sur mon système Linux et j'apprends symfony2 tout en essayant de créer le schéma avec la commande symfony2 

php app/console doctrine:schema:create

Je reçois le message d'erreur suivant: -

PDOException “could not find driver”

J'ai également commenté cette ligne extension=php_pdo_mysql.dll dans le fichier php.ini

J'ai essayé de chercher mon problème sur Google mais je n'ai pas pu le résoudre. Quand j'exécute la commande php -m, j'obtiens le résultat suivant: -

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/mysql.so' - /usr/lib/php5/20090626+lfs/mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/mysqli.so' - /usr/lib/php5/20090626+lfs/mysqli.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/pdo_mysql.so' - /usr/lib/php5/20090626+lfs/pdo_mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
date
dba
dom
ereg
exif
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
mbstring
mhash
openssl
pcntl
pcre
PDO
----
----

Y at-il un moyen que je peux supprimer ce problème?

12
ScoRpion

J'espère que vous dirigez votre projet dans localhost. Dans votre dossier de projet app/config, un fichier nommé parameters.ini, vérifiez que la configuration de votre connexion à la base de données Mysql est correcte. Si vous utilisez mysql, voir database_driver=pdo_mysql est son pilote. 

Ci-dessous un exemple.

database_driver   = pdo_mysql
    database_Host     = localhost
    database_port     =
    database_name     = databasename
    database_user     = msqlusername
    database_password = mysqlpassword//if not make blank

    mailer_transport  = smtp
    mailer_Host       = localhost
    mailer_user       =
    mailer_password   =

    locale            = en

    secret            = ThisTokenIsNotSoSecretChangeIt

J'espère que ça vous aide.

7
Asish AP

Sous Ubuntu, écrivez dans la console

Sudo apt-get install php5-Gd php5-mysql

et ça va marcher

10
ioses

Vous devez avoir un module appelé pdo_mysql

Recherchez ce qui suit dans la sortie phpinfo(),

pdo_mysql => Pilote PDO pour MySQL, version de la bibliothèque cliente => 5.1.44

pour installer pdo_mysql, procédez comme suit:

 pecl install pdo
 pecl install pdo_mysql

puis ajoutez les éléments suivants à votre fichier php.ini:

extension=pdo.so
extension=pdo_mysql.so
5
Jaspreet Chahal

Deux versions PHP sont installées sur mon serveur PHP 5.6 et PHP 7.

Quand j'exécute la commande php app/console doctrine:schema:update j'ai l'erreur: [PDOException] could not find driver

Je résous cette erreur en spécifiant la version PHP:

php5.6 app/console doctrine:schema:update
1
Mohamed Ben HEnda

brew install php70-pdo-pgsql au cas où vous auriez installé php7 sur mac avec brassage et changez la version de php en fonction de ce que vous avez installé.

1
Eralp Karaduman

On dirait que votre installation manque les fichiers .so nécessaires à la mise en place de la connexion mysql. Si vous utilisez un système de gestion de paquets pour installer PHP, assurez-vous d'avoir installé tous les sous-modules nécessaires (dans ce cas, vous aurez besoin de mysql-dev et des divers PHP PDO modules), bien que ces dépendances aient dû être résolues pour vous par le gestionnaire de paquets. 

Si vous ne passez pas par un gestionnaire de paquets, vous devrez alors compiler les fichiers .so requis à partir des sources. 

0
GordonM

si vous utilisez XAMPP, dans le fichier php.ini, la ligne n ° 897 (dépend de la version),

;extension=php_pdo_pgsql.dll 

décommentez-le, alors il apparaît comme ci-dessous

extension=php_pdo_pgsql.dll 

dans le fichier php.ini, ligne 897, redémarrez XAMPP.

0
Mohammad Fareed