Вопрос по pdo, php, ubuntu, postgresql – PostgreSql «PDOException» с сообщением «не удалось найти драйвер»

17

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

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

This package provides a module for PostgreSQL database connections directly from PHP scripts. It also includes the pdo_pgsql module for use with the PHP Data Object extension.

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

на свои вопросы, вы можете удалить их самостоятельно, нажав на соответствующую ссылку в нижней части вашего вопроса JMax
Извините, я проверял не тот сервер. Его Gentoo и здесь postgresql не установлен. Dipro Sen
Я тоже получил эту ошибку. Моя проблема в том, что я подключался через DSN, используя формат, подобный формату Heroku: пока он говорит "postgre:", правильный драйвер для PDO - "pgsql:" igorsantos07
Я прошу модераторов убрать вопрос, если это возможно Dipro Sen
Проверь мойHow to Answer (stackoverflow.com/a/53661888/5279996) в другой аналогичной публикации. GL IT Developers

Ваш Ответ

8   ответов
7

Просто

[sudo] apt-get install php-pgsql

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

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

[sudo] /etc/init.d/apache2 restart

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

Стоит отметить, что в моей первоначальной установке php было 2 файла php.ini. Не зная, что раскомментировать, я сделал их обоих.
4

включен ли он в php.ini. Раскоментируйтеextension=php_pdo_pgsql...

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

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

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

0

Edit php.ini and remove ; from extension=pdo_pgsql. Also, add extension=pgsql.so to the php.ini file.

Make sure to restart the Apache server before you try to see the result.

0

Вы должны установитьphp-pgsql а такжеdon't have to add extensions вphp.ini вручную в Linux (в винде да), потому что избыточности генерируются, и это не работает (проверено вerror.log).

$ sudo apt install php-pgsql

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

$ sudo nano /etc/php/7.0/apache2/conf.d/10-pdo.ini

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

GL

-3

Copy libpq.dll from the PHP directory to Apache24\bin (или где бы ни была ваша установка).

18

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

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

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

Я должен был сделатьsudo systemctl restart php-fpm.service прежде чем это сработало.
0

extension=pgsql
extension=pgsql.so

включены в вашphp.ini файл

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

enter image description here

6

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

Похожие вопросы