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

PHP 連接 Oracle 資料庫 OCI8 擴展實作範例

     編輯:PHP 綜合知識

使用 PHP OCI8 擴展連接 Oracle 資料庫的最小驗證腳本,適用於確認環境配置正確性。

前置條件

  • PHP 編譯時啟用 --with-oci8 或安裝 php-oci8 套件
  • Oracle Instant Client 已安裝並設定 LD_LIBRARY_PATH / PATH
  • php -m | grep oci8 確認模組載入

測試腳本:oci_connect 驗證

<?php
$dbconn = oci_connect(
    'crmtest',           // 用戶名
    '123456',            // 密碼
    "(DESCRIPTION=
        (ADDRESS=(PROTOCOL=TCP)(HOST=114.1.12.12)(PORT=1521))
        (CONNECT_DATA=(SID=orc1))
    )"                   // Easy Connect 字串或 TNSNAMES 別名
);

if ($dbconn) {
    echo '連接成功';
    oci_close($dbconn);
} else {
    $e = oci_error();
    echo '連接失敗: ' . $e['message'];
}
?>

連接字串常用格式

  • Easy Connect:host:port/service_name(如 192.168.1.100:1521/ORCL)
  • TNSNAMES 別名:tns_alias(需 TNS_ADMIN 指向 tnsnames.ora 目錄)
  • 完整 DESCRIPTION:如上例,最詳細可控

常見錯誤與對策

進階:持久連線與連線池

// 持久連線(進程級複用)
$dbconn = oci_pconnect($user, $pass, $db);

// DRCP (Database Resident Connection Pool) - Oracle 11g+
$dbconn = oci_connect($user, $pass, $db, 'AL32UTF8', OCI_CRED_RDRCP);

生產環境建議使用 DRCP 或連線池中介軟體降低資料庫連線開銷。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
錯誤原因解決
ORA-12154TNS 解析失敗檢查 tnsnames.ora、TNS_ADMIN、Easy Connect 格式
ORA-12541監聽器不存在確認 HOST/PORT、防火牆、Oracle Listener 狀態
ORA-28000帳號鎖定DBA 解鎖或重設密碼
OCI8 未載入擴展編譯/安裝缺失重編 PHP 或安裝對應套件,檢查 Instant Client 路徑