簡體   English   中英

使用PHP連接到Oracle

[英]Connect to Oracle using PHP

我正在嘗試連接到不在我的PC上的Oracle數據庫。 我已經安裝了Xampp,PHP和Oracle Instant Client。 我已將Windows環境路徑添加到C:\\ instantclient_11_1。 當我從phpinfo()檢查時,也啟用了Oci8。 我已將擴展名extension_dir = C:\\ php-5.4.0 \\ ext添加到php.ini中,並且還啟用了extension = php_oci8_11g.dll。 然后,當我嘗試使用以下代碼連接到數據庫時:

 <?php
 $conn = oci_connect('username', 'password');
 $query = 'select table_name from user_tables';
  ?>

它說警告:oci_connect():ORA-12560:TNS:協議適配器錯誤。 有人可以幫忙嗎?

oci_connect調用具有用於connection_string的可選第三個參數 正如您在文檔中所提到的,在您的環境中未指定TWO_TASKLOCAL時,您必須提供該連接字符串,以便PHP知道如何查找並連接到數據庫。

輕松連接語法的一般模式是:

$conn = oci_connect('username', 'password', '//hostname:port/service_name');

其中hostname是數據庫所在服務器的名稱或IP地址-由於您說它不在您的PC上,因此它將不是 localhost port是偵聽器端口,默認為1521,但可以是其他端口(您可以在服務器上執行lsnrctl status以進行檢查); 並且service_name是數據庫服務名稱,它可以與SID相同或可以不相同(您可以執行lsnrctl services以查看服務器上的有效值)。

如果您具有到同一數據庫的SQL Developer連接,則主機名和端口將顯示在連接設置中。 它還可能會顯示服務名稱,或者可能會顯示SID,具體取決於配置方式。 服務名稱和SID可能相同。 (如果您不能運行lsnrctl但具有足夠的特權,則可以嘗試select value from v$parameter where name = 'service_names' ,但很可能看不到該視圖)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM