本文簡單分析了php連接oracle數(shù)據(jù)庫的方法。分享給大家供大家參考,具體如下:
PHP提供了兩套函數(shù)與Oracle連接,分別是ORA_和OCI函數(shù)。其中ORA_函數(shù)略顯陳舊。OCI函數(shù)更新?lián)f更好一些。兩者的使用語法幾乎相差無幾。你的PHP安裝選項應(yīng)該可以支持兩者的使用。
由于OCI函數(shù)訪問oracle8以上的數(shù)據(jù)庫需要用到Oracle8 Call-Interface(OCI8),這個擴展模塊需要oracle8的客戶端函數(shù)庫,因此需要連接遠程數(shù)據(jù)庫的話,還需要連接端安裝oracle客戶端軟件,可以到http://www.oracle.com免費下載,這是必須的,否則會報方法未定義錯。
步驟:
1、安裝apache和php。
2、安裝Oracle 10g Instant Client(或其他版本)。
2、在php.ini中打開extension=php_oci8擴展。
3、將php/ext目錄下的php_oci8.dll文件拷貝到system32目錄下。
4、編寫測試腳本測試。
<?php
$conn = oci_connect('用戶名', '密碼', '遠程數(shù)據(jù)庫名(eg.//192.168.1.133/orcl)');
if (!$conn) {
$e = oci_error();
print htmlentities($e['message']);
exit;
}else {
echo "連接oracle成功!";
}
?>
可能出現(xiàn)的錯誤:
1、call to undefined function oci_connect()......:這是因為沒找到php_oci8.dll,檢查apache的錯誤日志error.log可能會看到:php startup :unable to load dynamic liberaries php_oci8.dll......
解決方法:將php/ext目錄下的php_oci8.dll文件拷貝到system32目錄下,如果還不行,將Oracle 10g Instant Client安裝目錄下/product/10.2.0/db_2/BIN目錄中的oci.dll文件拷貝到system32下。
2、OCIEnvNlsCreate() failed....... PATH includes the directory with Oracle Instant Client libraries
解決方法:重啟機器,如果還不行,安裝Oracle 10g Instant Client。
希望本文所述對大家PHP程序設(shè)計有所幫助。