it-swarm.com.de

PostgreSql 'PDOException' mit der Meldung 'Treiber konnte nicht gefunden werden'

pdo funktioniert gut mit mysql, aber mit pgsql gibt es den Fehler 'PDOException' with message 'could not find driver' Ich habe php5-pgsql installiert, das auch pdo_pgsql enthält 

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

Dieses Paket enthält ein Modul für PostgreSQL-Datenbankverbindungen direkt aus PHP -Skripts. Es enthält auch das Modul pdo_pgsql zur Verwendung mit der Datenobjekterweiterung PHP.

mein dsn ist pgsql:dbname=DB;Host=192.168.0.2 Ich verwende Ubuntu 10.04

16
Dipro Sen

1) Haben Sie pgsql.so in php.ini (extension=pgsql.so) aktiviert?

2) Hören Sie Postgresql auf 192.168.0.2-Schnittstelle? (Sie können es mit netstat -tpln überprüfen)

3) Wie authentifizieren Sie Ihren Zugang zu Postgresql?

18
Jan Marek

Diese Lösung funktioniert für mich: .__

[Sudo] apt-get install php-pgsql

nach, Kommentar von pgsql und pdo-pgsql in php.ini

Endlich :

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

Wenn Sie Apache wie in meinem Fall verwenden ...

7
Goms

Vergewissern Sie sich, dass Sie die Zeile, die PHP angibt, wo sich der Postgres-Treiber befindet (in der Regel extension=pgsql.so) in der php.ini-Hauptdatei befindet, auskommentiert.

6
newenglander

Ich hatte das gleiche Problem. Zunächst einmal - überprüfen, ob es in php.ini aktiviert ist. Unkommentiert extension=php_pdo_pgsql...

als Erweiterungsverzeichnis einrichten !!

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

vergessen Sie nicht, den Server nach dem Ändern der Konfiguration neu zu starten.

4
Max Klax

Wenn Sie nicht Postgresql auf demselben Rechner installiert haben, ist dies Apache und PHP. Sie müssen php-pgsql und nicht unter Linux ( in Windows yes ) manuell Erweiterungen in php.ini hinzufügen, da Redundanzen generiert werden und dies nicht funktioniert (in error.log geprüft).

$ Sudo apt install php-pgsql

Dann können Sie das Vorhandensein der automatisch aktivierten Erweiterung in überprüfen:

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

Beobachtungen: In phpinfo() finden Sie das Verzeichnis conf.d/ und die Datei error.log

GL

0
IT Developers

Hier habe ich das Problem gelöst.

  1. Bearbeiten Sie php.ini und entfernen Sie ; aus extension=pdo_pgsql. Fügen Sie auch extension=pgsql.so zur php.ini-Datei hinzu. 

  2. Stellen Sie sicher, dass Sie den Apache-Server neu starten, bevor Sie versuchen, das Ergebnis anzuzeigen.

0

Versuchen Sie, das Semikolon vor zu entfernen 

extension = pgsql
extension = pgsql.so

in Ihrer Datei php.ini enthalten

Sie können dies über die XAMPP-Systemsteuerung tun.

 enter image description here

0