台灣最大程式設計社群網站
線上人數
1051
 
會員總數:243152
討論主題:187974
歡迎您免費加入會員
討論區列表 >> PHP >> 請問PDO連結PostgreSQL
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問PDO連結PostgreSQL
價值 : 50 QP  點閱數:418 回應數:21

樓主

小魚
中級專家
5639 25
2738 985
發送站內信

最近在學PDO連接PostgreSQL,
看網路上大部分的文章寫的都差不多,
但是執行上就是一直有問題

我的PHP版本是5.6,
最近去下載了PostgreSQL 10的版本,
php.ini 有加入 extension=php_pdo_pgsql.dll

以下是連線的方式



一執行到這邊就會出現錯誤

exception 'PDOException' with message 'could not find driver' in C:\AppServ\www\practice2\php1.php:29 Stack trace: #0 C:\AppServ\www\practice2\php1.php(29): PDO->__construct('pgsql:host=127....', 'postgres', 'hello', Array) #1 {main}

不知道這是什麼問題,
麻煩大大們幫忙解惑一下,
感恩~

搜尋相關Tags的文章: [ PHP ] , [ PDO ] , [ PostgreSQL ] ,
本篇文章發表於2018-05-26 00:05
== 簽名檔 ==
最近發現站方的 最佳解答 功能有問題
不能直接按最佳解答,
只能從分配點數的地方輸入 全部的點數
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

淺水員
檢舉此回應
用 phpinfo(); 看一下是不是有正確安裝
大概是長這樣子(確認一下下面框起來的地方)
本篇文章回覆於2018-05-26 12:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

小魚
檢舉此回應
淺水員
的確是找不到pgsql,
不過我有加extension啊,
而且也確實有這個檔案,
那是要去下載檔案還是要怎麼處理呢?
麻煩大大幫忙回答一下了~
感恩~
本篇文章回覆於2018-05-26 13:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

小魚
檢舉此回應
淺水員:

的確是沒有這些,
不過我確實有extension,
也確實有這個檔案,
那應該要怎麼解決呢?
感恩~
本篇文章回覆於2018-05-26 13:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

淺水員
檢舉此回應
是三個都沒有嗎?
我剛剛測試,其實最後一個沒有也可以使用
不過前兩個應該要有
本篇文章回覆於2018-05-26 14:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

小魚
檢舉此回應
真的是三個都沒有,
搞不清楚為什麼...
本篇文章回覆於2018-05-26 21:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

淺水員
檢舉此回應
把分號去掉是 PHP 會去讀取那個模組
萬一讀取失敗就不會顯示在 phpinfo 裡面
像是這種狀況可以看看 php_error.log 有沒有相關的錯誤訊息

因為 AppServ 我沒用過
所以沒法提供更多的資訊
本篇文章回覆於2018-05-26 21:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

可樂快跑
檢舉此回應
加了設定之後………有重開apache嗎?
本篇文章回覆於2018-05-26 23:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

小魚
檢舉此回應
原來有這個log,
看來應該是它了,

[Sun May 27 00:53:12.963408 2018] [ssl:warn] [pid 13164:tid 392] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]
PHP Warning: PHP Startup: Unable to load dynamic library 'C:/AppServ\\php5\\ext\\php_pdo.dll' - \xef\xbf\xbd\xe4\xa4\xa3\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdw\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xd2\xb2\xd5\xa1C\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:/AppServ\\php5\\ext\\php_pdo_pgsql.dll' - \xef\xbf\xbd\xe4\xa4\xa3\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdw\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xd2\xb2\xd5\xa1C\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:/AppServ\\php5\\ext\\php_pdo_firebird.dll' - \xef\xbf\xbd\xe4\xa4\xa3\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdw\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xd2\xb2\xd5\xa1C\r\n in Unknown on line 0
本篇文章回覆於2018-05-27 01:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
路徑位置同時有斜線和反斜線?
本篇文章回覆於2018-05-28 09:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

小魚
檢舉此回應
它好像就長這樣,
不過mysql跟ms-sql都可以用...
話說我把斜線改過來還是一樣的情況...

[Mon May 28 11:26:54.026061 2018] [ssl:warn] [pid 16928:tid 372] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\AppServ\\php5\\ext\\php_pdo.dll' - \xef\xbf\xbd\xe4\xa4\xa3\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdw\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xd2\xb2\xd5\xa1C\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\AppServ\\php5\\ext\\php_pdo_pgsql.dll' - \xef\xbf\xbd\xe4\xa4\xa3\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdw\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xd2\xb2\xd5\xa1C\r\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\AppServ\\php5\\ext\\php_pdo_firebird.dll' - \xef\xbf\xbd\xe4\xa4\xa3\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdw\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xd2\xb2\xd5\xa1C\r\n in Unknown on line 0
本篇文章回覆於2018-05-28 11:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

淺水員
檢舉此回應
所以問題解決了嗎?
如果還沒下面幾點提供參考(之前手動裝一些 extension 的經驗):
1. php 中有些 dll 可能要放在 system32 或是 apache 資料夾才能正確載入。
2. 有可能會動到 apache 的設定檔,在裡面加上 LoadFile
3. 如果是額外抓的 dll 要確認跟使用的版本符合。(有時候差一點點都不行)
本篇文章回覆於2018-05-28 12:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
TO:迷路
在windows系統中,會出現這樣是很正常的。但不會影響到路徑。

to:小魚
先去 C:\AppServ\php5\ext 看看一下,是否有包含這些dll檔。
沒有的話。去安裝或是下載(編譯型)的相關對應套件檔案。
一般會有給你擴裝用的程式檔案。將其copy過來後。再重新啟動。
可以去相關的套件站。找找看,或是去php下載站,雙方因該都會有提供對應的檔案。

php原裝檔案,有很多並未包含進去。由其你是用AppServ來做安裝的話。
那就有可能會連這些東西都沒有。

to:淺水員
這邊給你一些觀念。盡量沒必要的話。不要認為將dll放到system32就可以運行的想法。
也可以的話,也盡量不要教導將dll放到system32下。
最好能教正確的安裝設定方式。

其實確實,當應用程式找不到dll時,會先去system32中再找一次。
但這樣是不好的行為。最好是可以放到正規指定下的位置。
而不要利用window的特性,去放到system32下。
雖然可動,但有時也會產生許多不必要的問題。
本篇文章回覆於2018-05-28 14:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
回應

淺水員
檢舉此回應
抱歉,我是沒想到那段文字會變成教導
因為我覺得小魚應該有能力處理
(原本我以為到8F這串討論就結束了)

只是給他我以前查資料看過的幾個關鍵字
要怎麼做給他自已選擇
因為在我心中他應該要有那種能力
本篇文章回覆於2018-05-28 16:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
放輕鬆,並不是為了指責你。
雖然你是認為小魚有那個能力。
但要知道你的留言並非只是單一針對性。其它人也會看到。
所以我還是會希望將該說的說一說會比較好。

將dll直接放到system32是一種直接簡單的處理方法。
但就站在一個系統管理員而言,是一種很不負責任的做法。

其實會糾正你的原因。是因為你說了有些php要將dll放去system32才能動。
認真來說,並不會有這樣的套件。一定得要放過去system32才能動。
大多數會碰到該問題的,是有些套件有其自已的設定檔。
這些設定檔大多數會有繼承php設定檔的繼承性。
但少部份指是採用預設的設定值。自然會造成無法正常取得路徑。
這時如果搞不清楚的話。就一定得要放去system32。才會跑了。
本篇文章回覆於2018-05-28 16:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
回應

淺水員
檢舉此回應
收到!
因為平常在教學生數理的時候都是用引導對方思考再聽對方回應的方式
不小心在網路上也這個樣子了

之後盡可能注意
但萬一不小心又這樣就再麻煩大家指正了
本篇文章回覆於2018-05-28 16:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   

回覆
如要回應,請先登入.