web-dev-qa-db-fra.com

PostgreSql 'PDOException' avec le message 'impossible de trouver le pilote'

pdo fonctionne bien avec mysql, mais avec pgsql, son erreur donne 'PDOException' with message 'could not find driver' J'ai installé le paquet php5-pgsql qui contient également pdo_pgsql 

http://packages.debian.org/sid/php5-pgsql

Ce paquet fournit un module pour les connexions à la base de données PostgreSQL directement à partir de scripts PHP. Il comprend également le module pdo_pgsql à utiliser avec l'extension d'objet de données PHP.

mon dsn est pgsql:dbname=DB;Host=192.168.0.2 J'utilise Ubuntu 10.04

16
Dipro Sen

1) Avez-vous activé pgsql.so dans php.ini (extension=pgsql.so)?

2) Êtes-vous Postgresql listenin sur l'interface 192.168.0.2? (Vous pouvez le vérifier par netstat -tpln)

3) Comment authentifiez-vous votre accès à Postgresql?

18
Jan Marek

Cette solution fonctionne pour moi: Just

[Sudo] apt-get install php-pgsql

après, décommenter pgsql et pdo-pgsql extensions dans php.ini

Finalement :

[Sudo] /etc/init.d/Apache2 restart

Si vous utilisez Apache comme ce fut mon cas ...

7
Goms

Assurez-vous de ne pas commenter la ligne qui indique à php où se trouve le pilote Postgres (généralement extension=pgsql.so) dans le fichier php.ini principal.

6
newenglander

J'ai eu le même problème. Tout d’abord - vérifiez qu’il est activé dans php.ini. Uncomment extension=php_pdo_pgsql...

que mettre en place un répertoire d’extensions !!

extension_dir = "ext" ; for your case it could be other dir.

et n'oubliez pas de redémarrer le serveur après avoir modifié la configuration.

4
Max Klax

Si postgresql n'est pas installé sur la même machine, Apache et PHP; vous devez installer php-pgsql et sans ajouter d'extensions dans php.ini manuellement dans Linux ( dans Windows oui ), car des redondances sont générées et cela ne fonctionne pas (archivé dans error.log).

$ Sudo apt install php-pgsql

Ensuite, vous pouvez vérifier l'existence de l'extension activée automatiquement dans:

$ Sudo nano /etc/php/7.0/Apache2/conf.d/10-pdo.ini

Observations: Dans phpinfo() vous trouverez le répertoire conf.d/ et le fichier error.log

GL

0
IT Developers

Voici ce que j'ai fait pour résoudre le problème.

  1. Éditez php.ini et retirez ; de extension=pdo_pgsql. Ajoutez également extension=pgsql.so au fichier php.ini

  2. Assurez-vous de redémarrer le serveur Apache avant d'essayer de voir le résultat.

0

Essayez de supprimer le point-virgule devant 

extension = pgsql
extension = pgsql.so

inclus dans votre fichier php.ini

Vous pouvez le faire depuis le panneau de contrôle XAMPP.

 enter image description here

0
Rafael Matsumoto