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
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?
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 ...
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.
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.
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
Voici ce que j'ai fait pour résoudre le problème.
Éditez php.ini
et retirez ;
de extension=pdo_pgsql
. Ajoutez également extension=pgsql.so
au fichier php.ini
.
Assurez-vous de redémarrer le serveur Apache avant d'essayer de voir le résultat.