it-swarm.com.ru

PostgreSql "PDOException" с сообщением "не удалось найти драйвер"

pdo работает нормально с mysql, но с pgsql выдает ошибку 'PDOException' with message 'could not find driver' Я установил пакет php5-pgsql, который также включает pdo_pgsql 

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

Этот пакет предоставляет модуль для соединений с базой данных PostgreSQL напрямую из PHP скриптов. Он также включает модуль pdo_pgsql для использования с расширением PHP Data Object.

мой DSN pgsql:dbname=DB;Host=192.168.0.2 Я использую Ubuntu 10.04

16
Dipro Sen

1) Вы включили pgsql.so в php.ini (extension=pgsql.so)?

2) Вы слушаете Postgresql на интерфейсе 192.168.0.2? (Вы можете проверить это по netstat -tpln)

3) Как вы аутентифицируете свой доступ в Postgresql?

18
Jan Marek

Это решение работает для меня: Просто

[Sudo] apt-get install php-pgsql

после, раскомментируйте расширения pgsql и pdo-pgsql в php.ini

В заключение :

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

Если вы используете Apache, как было в моем случае ...

7
Goms

Убедитесь, что вы раскомментировали строку, которая сообщает php, где находится драйвер Postgres (обычно extension=pgsql.so) в основном файле php.ini.

6
newenglander

Я была такая же проблема. Прежде всего - проверьте, включен ли он в php.ini. Раскомментировать extension=php_pdo_pgsql...

чем настроить расширение каталога !!

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

и не забудьте перезапустить сервер после изменения конфига.

4
Max Klax

Если у вас не установлен postgresql на одной машине с Apache и PHP; вам нужно установить php-pgsql и не нужно добавлять расширения в php.ini вручную в Linux ( в Windows да ), потому что создаются избыточности, и это не работает (проверено в error.log).

$ Sudo apt install php-pgsql

Затем вы можете проверить наличие включенного расширения автоматически в:

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

Наблюдения: в phpinfo() вы найдете каталог conf.d/ и файл error.log

GL

0
IT Developers

Вот что я сделал, чтобы решить проблему.

  1. Отредактируйте php.ini и удалите ; из extension=pdo_pgsql. Также добавьте extension=pgsql.so в файл php.ini

  2. Обязательно перезапустите сервер Apache, прежде чем пытаться увидеть результат.

0
Amir Md Amiruzzaman

Попробуйте удалить точку с запятой перед 

расширение = PgSQL
расширение = pgsql.so

включается в ваш файл php.ini

Вы можете сделать это из панели управления XAMPP.

 enter image description here

0
Rafael Matsumoto