问题描述
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.
我的dsn是pgsql:dbname=DB;host=192.168.0.2
我正在使用Ubuntu 10.04
最佳方案
1)您是否在php.ini
(extension=pgsql.so
)中启用了pgsql.so?
2)您是否在192.168.0.2
接口上进行Postgresql侦听? (您可以通过netstat -tpln
进行检查)
3)您如何验证对Postgresql的访问?
次佳方案
此消息表示您需要在PHP中安装和/或激活postgresql扩展
这个解决方案对我有用:安装postgresql扩展
[sudo] apt-get install php-pgsql
在激活后,取消注释etc/php/$PHP_VERSION/apache2/php.ini
文件中的pgsql
和pdo-pgsql
扩展名
最后,输入:
[sudo] /etc/init.d/apache2 restart
如果像我的情况那样使用apache来重启apache服务器…
第三种方案
确保您已取消注释告诉php在主php.ini
文件中Postgres驱动程序在哪里的行(通常为extension=pgsql.so
)。
第四种方案
我遇到过同样的问题。首先-检查是否在php.ini中启用了它。取消注释extension=php_pdo_pgsql...
比设置扩展目录!
extension_dir = "ext" ; for your case it could be other dir.
并且不要忘记在更改配置后重新启动服务器。