2013-03-27 106 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,它會工作。

相關問題