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