Ответ 1
1) Включили ли вы pgsql.so в php.ini
(extension=pgsql.so
)?
2) Вы используете Postgresql в интерфейсе 192.168.0.2
? (Вы можете проверить его на netstat -tpln
)
3) Как вы аутентифицируете свой доступ в Postgresql?
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 для использования с расширением Object Data Object.
my dsn pgsql:dbname=DB;host=192.168.0.2
Я использую Ubuntu 10.04
1) Включили ли вы pgsql.so в php.ini
(extension=pgsql.so
)?
2) Вы используете Postgresql в интерфейсе 192.168.0.2
? (Вы можете проверить его на netstat -tpln
)
3) Как вы аутентифицируете свой доступ в Postgresql?
Это решение работает для меня: просто
[sudo] apt-get install php-pgsql
после, раскомментируйте расширения pgsql
и pdo-pgsql
в etc/php/$PHP_VERSION/apache2/php.ini
Наконец, введите:
[sudo] /etc/init.d/apache2 restart
Чтобы перезапустить сервер Apache, если вы используете Apache, как это было в моем случае...
Убедитесь, что вы раскомментировали строку, которая сообщает php, где находится драйвер Postgres (обычно extension=pgsql.so
) в главном файле php.ini
.
У меня была такая же проблема. Прежде всего - проверка включена в php.ini. Uncomment extension=php_pdo_pgsql...
чем установить каталог расширений!!
extension_dir = "ext" ; for your case it could be other dir.
и не забудьте перезагрузить сервер после изменения конфигурации.
Вот что я сделал, чтобы решить проблему.
Отредактируйте php.ini
и удалите ;
из extension=pdo_pgsql
. Также добавьте extension=pgsql.so
в файл php.ini
.
Обязательно перезапустите сервер Apache, прежде чем пытаться увидеть результат.
Попробуйте удалить точку с запятой перед
расширение = PgSQL
расширение = pgsql.so
включен в ваш файл php.ini
Вы можете сделать это из панели управления XAMPP.
Если у вас не установлен 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
Скопировать libpq.dll из каталога PHP в Apache24\bin (или где бы вы ни находились)