php連接oracle數(shù)據(jù)庫的方法(測試成功)

字號:


    本文簡單分析了php連接oracle數(shù)據(jù)庫的方法。分享給大家供大家參考,具體如下:
    PHP提供了兩套函數(shù)與Oracle連接,分別是ORA_和OCI函數(shù)。其中ORA_函數(shù)略顯陳舊。OCI函數(shù)更新?lián)f更好一些。兩者的使用語法幾乎相差無幾。你的PHP安裝選項(xiàng)應(yīng)該可以支持兩者的使用。
    由于OCI函數(shù)訪問oracle8以上的數(shù)據(jù)庫需要用到Oracle8 Call-Interface(OCI8),這個擴(kuò)展模塊需要oracle8的客戶端函數(shù)庫,因此需要連接遠(yuǎn)程數(shù)據(jù)庫的話,還需要連接端安裝oracle客戶端軟件,可以到http://www.oracle.com免費(fèi)下載,這是必須的,否則會報方法未定義錯。
    步驟:
    1、安裝apache和php。
    2、安裝Oracle 10g Instant Client(或其他版本)。
    2、在php.ini中打開extension=php_oci8擴(kuò)展。
    3、將php/ext目錄下的php_oci8.dll文件拷貝到system32目錄下。
    4、編寫測試腳本測試。
    <?php
    $conn = oci_connect('用戶名', '密碼', '遠(yuǎn)程數(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()......:這是因?yàn)闆]找到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
    解決方法:重啟機(jī)器,如果還不行,安裝Oracle 10g Instant Client。
    希望本文所述對大家PHP程序設(shè)計有所幫助。