使用 PHP OCI8 擴展連接 Oracle 資料庫的最小驗證腳本,適用於確認環境配置正確性。
--with-oci8 或安裝 php-oci8 套件LD_LIBRARY_PATH / PATHphp -m | grep oci8 確認模組載入<?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'];
}
?>
host:port/service_name(如 192.168.1.100:1521/ORCL)tns_alias(需 TNS_ADMIN 指向 tnsnames.ora 目錄)| 錯誤 | 原因 | 解決 |
|---|---|---|
| ORA-12154 | TNS 解析失敗 | 檢查 tnsnames.ora、TNS_ADMIN、Easy Connect 格式 |
| ORA-12541 | 監聽器不存在 | 確認 HOST/PORT、防火牆、Oracle Listener 狀態 |
| ORA-28000 | 帳號鎖定 | DBA 解鎖或重設密碼 |
| OCI8 未載入 | 擴展編譯/安裝缺失 | 重編 PHP 或安裝對應套件,檢查 Instant Client 路徑 |