首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 透過 OCI8 連接遠端 Oracle for NT 完整設定指南

     編輯:PHP 綜合知識

早期 PHP 以 ODBC 或舊版 Oracle 擴展連接遠端 Oracle 8.0.5/8i for NT 常失敗。本文提供經驗證可行的 OCI8 連接字串寫法,並說明必要的環境設定步驟。

可用的連接程式碼

<?php
$connStr = "(DESCRIPTION=
    (ADDRESS=(PROTOCOL=TCP)(HOST=10.65.73.3)(PORT=1521))
    (CONNECT_DATA=(SID=ORCL))
)";
$dbconn = OCILogon("zypdp", "zypdp", $connStr);

if ($dbconn) {
    echo "連接成功
"; if (OCILogOff($dbconn)) { echo "關閉連接成功!"; } } else { echo "連接失敗"; } ?>

連接字串詳細解析

參數說明
PROTOCOL傳輸協定,通常為 TCP
HOSTOracle 伺服器 IP 或主機名
PORTListener 埠,預設 1521
SID資料庫執行個體名稱(如 ORCL)

此字串即為 OCILogon 的第三個參數(傳統文件稱 OCACLE_SID,實為完整連線描述子)。

環境部署檢查清單

  1. PHP 設定:php.ini 啟用 extension=php_oci8.dll,並確認 extension_dir 指向正確資料夾。
  2. Oracle Client:伺服器需安裝 Oracle 8i/9i/10g+ Client 或 Instant Client,並設定 PATH 包含 oci.dll 所在目錄。
  3. 網路連通:防火牆開放 1521 埠;tnsping 測試連線正常。
  4. 帳號權限:擁有遠端資料庫的有效使用者名稱/密碼。

常見錯誤排查

  • ORA-12154 / ORA-12541:檢查 HOST/PORT/SID 拼寫、Listener 狀態、防火牆。
  • OCILogon 回傳 false 且無錯誤訊息:多半是 Oracle Client 未正確載入,查看 Apache/PHP 錯誤日誌中的 OCI.dll not found。
  • 關閉連線失敗:範例中 OCILogOff 判斷回傳值,實務上直接呼叫 OCILogOff($dbconn) 即可,無需判斷回傳值。

進階建議

生產環境建議改用 OCIPLogon(持久連線)或連線池,並將連線字串集中管理於 tnsnames.ora,程式碼僅需 OCILogon("user","pass","TNS_ALIAS"),提升可維護性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved