2013-03-27 79 views
1

我下载并安装了随Stackbuilder附带的PostgreSQL 9.2.3。PDO异常“找不到驱动程序”(pgsql)

我使用PostgreSQL Stackbuilder安装Apache(2.2.22)& PHP(5.4.5)。

现在我试图用PDO连接到数据库,但我得到driver not found错误。

我在我的php.ini文件中未评论extension=php_pgsql.dll & extension=php_pdo_pgsql.dll

我的phpinfo();函数显示它们已启用。 enter image description here

我注意到最主要的是,我的PHP \目录中没有分机\目录中的这些文件。我假定这些文件已经被自动安装到一个php \子目录中。

这些扩展名可以存储在哪里;我需要指定一个绝对路径的PHP来找到它们吗?

更新: 所以我去了php.ini,并打开启动错误。当我启动命令行php.exe时,出现错误提示找不到php_pgsql.dll & php_pdo_pgsql.dll。

enter image description here 看起来他们试图在D:驱动器上引用它们,但我没有。我将所有内容安装到E:驱动器上的同一目录中。我无法在任何地方找到扩展名(也无法使用php)。

+0

你的连接字符串是什么样的? – dlp 2013-03-27 19:18:56

+0

我已经在配置文件中定义了常量。如果我回显它看起来像这样:'“pgsql:host = localhost; port = 5432; user = postgres; password = postgres; dbname = Test”' – Roy 2013-03-27 19:33:17

+0

这看起来像是从构建服务器,而不是一个将永远安装在您的本地系统上。奇怪的。你系统上的php_pdo_pgsql.dll在哪里?它是否或它在'php.ini'中列出的文件夹在任何地方?或者在PATH上? – 2013-03-28 00:39:53

回答

6

在WAMP(窗口)...

副本C:\wamp\bin\php\php5.x.xx\libpq.dll

贴在C:\Windows\System32\

+4

请为此添加一些解释。 – 2014-09-08 20:50:35

1
上WAMP

,有2个文件php.ini文件,你将不得不检查PostgreSQL扩展是双方! 延长线是

extension=php_pdo_pgsql.dll 

所以检查

C:\wamp\bin\apache\apache2.4.9\bin\php.ini 

C:\wamp\apache\apache2.4.9\bin\php.ini 

还要检查将延伸线后,重新启动Apache,它会工作。

相关问题