2011-03-19 73 views
1

我想從PHP連接到oracle。我下載了php_oci8.dll庫,將它放在php的ext目錄中,在我的php.ini文件中定義了extension=php_oci8.dll並重新啓動了Web服務器。 我收到一個錯誤,說Call to undefined function oci_connect()。我發現php需要配置爲--with-oci8=path_to_library。查看php配置(phpinfo()),它在「配置命令」部分中顯示--with-oci8=D:\php-sdk\oracle\instantclient10\sdk,shared用oracle配置php

我在Windows 7機器上運行。

我該如何改變這種情況?還有什麼我必須做的才能使它工作?

謝謝!

回答

1

--with stuff只有當你想直接編譯一個庫到PHP。如果添加'extension'參數未加載oracle庫,請檢查您是否修改了正確的php.ini。或者爲.dll列出了正確的路徑。

通常有兩個php.ini。一個用於網絡服務器操作,另一個用於命令行。

你可以看到當前配置與phpinfo()。如果加載了Oracle擴展,將會有一個列出其配置選項的部分。

0

在Web服務器上安裝Oracle客戶端(我懷疑您沒有)。您至少需要像Oracle Instant Client這樣的東西連接到Oracle。

請按照PHP Manual中關於如何設置您的環境的建議。該頁面還有一個很好的關於疑難解答的部分。

+0

現在我使用了http://www.oracle.com/technetwork/articles/technote-php-instant-084410.html上的說明,現在我正在使用Oracle Instant Client,但在該頁面上指出它沒有它就會工作。這意味着只有PHP和Oracle數據庫服務器。我也會嘗試。 – Tchypp 2011-04-02 16:51:37

+0

它聲明只有當Oracle數據庫安裝在與Web服務器相同的服務器上時(如在這種情況下,可以使用數據庫庫),它才能在沒有Instant Client的情況下運行。如果這描述了您的情況,則不需要安裝額外的Oracle客戶端。 – 2011-04-03 12:32:36

+0

是的,你是對的。在我的開發環境中,情況就是這樣。儘管如此,我還沒有成功(但)沒有即時客戶端就能實現它。 – Tchypp 2011-04-04 08:31:15