Oracle 數(shù)據(jù)庫函數(shù)庫
2024-08-29 13:35:03
供稿:網(wǎng)友
 
             
                                               要使用這個函數(shù)庫,要在安裝 php 及 Apache Server 之前先將 Oracle 數(shù)據(jù)庫安裝好,并確定 Oracle 能夠順利運作。                                                                                            之后在 PHP 配置 (configure) 時加入 --with-oracle=DIR 的選項,DIR 就是 $ORACLE_HOME 環(huán)境變量,例如:
                     ./configure --with-oracle=/abc/def/oracle/PRodUCt/7.0.3 --with-apache=../apache_1.3.x --enable-track-vars
                     以下的范例是 stevel@nettek-llc.com (22-Jan-1999) 所提供的。這個范例是返回 Oracle 中 sid1 數(shù)據(jù)庫 (Database) 的 EMP 資料表 (Table) 所有資料。帳號是 SCOTT、密碼為 TIGER。
                                       <?php 
                                          putenv ( "ORACLE_SID=sid1" ); 
                        putenv ( "ORACLE_HOME=/u01/app/oracle/product/8.0.5" ); 
                        $handle = ora_plogon ( "SCOTT@sid1" , "TIGER" ) or die; 
        $cursor = ora_open ( $handle ); 
        ora_commitoff ( $handle ); 
        $query = "SELECT * FROM EMP" ; 
        ora_parse ( $cursor , $query ) or die; 
        ora_exec ( $cursor ); 
        echo "<Html><PRE>/n" ; 
        echo "$query /n/n " ; 
        $numcols = 0 ; 
        while( ora_fetch ( $cursor )) { 
        $numcols = ora_numcols ( $cursor ); 
        for ( $column = 0 ; $column < $numcols ; $column ++) { 
        $data = trim ( ora_getcolumn ( $cursor , $column )); 
        if( $data == "" ) $data = "NULL" ; 
        echo "$data /t " ; 
        } 
        echo "/n" ; 
        } 
        $numrows = ora_numrows ( $cursor ); 
        echo " /n ROWS RETURNED: $numrows /n " ; 
        echo "</PRE></HTML>/n" ; 
        ora_close ( $cursor ); 
        ?> 
        kk@shonline.de (05-Aug-1998) 指出 ORACLE_HOME 為 Oracle 的安裝路徑,ORACLE_SID 為 Oracle 的數(shù)據(jù)庫名稱,若不知道這二個環(huán)境變量可以用 sqlplus 連上 Oracle 來查證。                                                                                   Ora_Bind: 鏈接 PHP 變量到 Oracle 參數(shù)。 
                Ora_Close: 關(guān)閉一個 Oracle 的 cursor。 
                Ora_ColumnName: 得到 Oracle 返回列 (Column) 的名稱。 
                Ora_ColumnType: 得到 Oracle 返回列 (Column) 的類型。 
                Ora_Commit: 將 Oracle 的交易處理付諸實行。 
                Ora_CommitOff: 關(guān)閉自動執(zhí)行 Oracle 交易改動的功能。 
                                         Ora_CommitOn: 打開自動執(zhí)行 Oracle 交易改動的功能。 
                Ora_Error: 獲得 Oracle 錯誤信息。 
                Ora_ErrorCode: 獲得 Oracle 錯誤代碼。 
                Ora_Exec: 執(zhí)行 Oracle 的指令部分。 
                Ora_Fetch: 取得返回資料的一列 (row)。 
                Ora_GetColumn: 從返回列 (row) 的資料取得一欄 (column)。 
                Ora_Logoff: 結(jié)束與 Oracle 的鏈接。 
                Ora_Logon: 打開與 Oracle 的鏈接。 
                Ora_Open: 打開 Oracle 的 cursor。 
                Ora_Parse: 分析 SQL 語法。 
                Ora_Rollback: 撤消當(dāng)前交易。 
                Ora_Do: 快速的 SQL 查詢。 
                Ora_FetchInto: 取回 Oracle 資料放入數(shù)組。 
                Ora_ColumnSize: 取得字段類型的大小。 
                Ora_Numcols: 取得字段的數(shù)目。 
                Ora_PLogon: 打開與 Oracle 的長期鏈接。               Ora_Bind
                鏈接 PHP 變量到 Oracle 參數(shù)。
                語法: int ora_bind(int cursor, string PHP variable name, string SQL parameter name, int length, int [type]);
                返回值: 整數(shù)
                函數(shù)種類: 數(shù)據(jù)庫功能
                內(nèi)容說明: 本函數(shù)將 PHP 變量與 SQL 參數(shù)系結(jié)在一起。SQL 參數(shù) (SQL parameter) 必須是類似 ":name" 的型式。語法中的 type 為可省略的參數(shù)選項,可以設(shè)成下面三種數(shù)字之一:0 為默認(rèn)值,表輸入/輸出 (in/out);1 表輸入 (in);2 表輸出 (out)。在 PHP 3.0.1 版之后,亦可以使用下列常量代替 type 的三種數(shù)字值:ORA_BIND_INOUT、ORA_BIND_IN 或 ORA_BIND_OUT。重要的是本函數(shù)應(yīng)是在 ora_parse() 之后與 ora_exec() 之前呼叫使用。若成功則返回 true,反之返回 false。要處理具體的錯誤信息可使用 ora_error() 及 ora_errorcode()。
                使用范例 
                <?php
                ora_parse($curs, "declare tmp INTEGER; begin tmp := :in; :out := tmp; :x := 7.77; end;");
                ora_bind($curs, "result", ":x", $len, 2);
                ora_bind($curs, "input", ":in", 5, 1);
                ora_bind($curs, "output", ":out", 5, 2);
                $input = 765;
                ora_exec($curs);
                echo "Result: $result<BR>Out: $output<BR>In: $input";
                ?>              Ora_Close
                關(guān)閉一個 Oracle 的 cursor。
                語法: int ora_close(int cursor);
                返回值: 整數(shù)
                函數(shù)種類: 數(shù)據(jù)庫功能
                內(nèi)容說明: 本函數(shù)將 ora_open() 打開的游標(biāo) (cursor) 關(guān)閉。若成功則返回 true,反之返回 false。要處理具體的錯誤信息可使用 ora_error() 及 ora_errorcode()。              Ora_ColumnName
                得到 Oracle 返回列 (Column) 的名稱。
                語法: string Ora_ColumnName(int cursor, int column);
                返回值: 字符串
                函數(shù)種類: 數(shù)據(jù)庫功能
                                         內(nèi)容說明: 本函數(shù)返回的名稱全都轉(zhuǎn)成英文大寫字母。              Ora_ColumnType
                得到 Oracle 返回列 (Column) 的類型。
                語法: string Ora_ColumnType(int cursor, int column);
                返回值: 字符串
                函數(shù)種類: 數(shù)據(jù)庫功能
                內(nèi)容說明: 返回的類型值為下面類型之一:
                VARCHAR2 
                VARCHAR 
                CHAR 
                NUMBER 
                LONG 
                LONG RAW 
                ROWID 
                DATE 
                CURSOR               Ora_Commit
                將 Oracle 的交易處理付諸實行。
                語法: int ora_commit(int conn);
                返回值: 整數(shù)
                函數(shù)種類: 數(shù)據(jù)庫功能
                內(nèi)容說明: 返回值 true 表示成功,false 表示發(fā)生錯誤。具體的錯誤糾錯可以使用 ora_error() 及 ora_errorcode()。本函數(shù)會將最近一次 commit/rollback 后的交易 (transaction) 做永久性的修改,當(dāng)與 Oracle 數(shù)據(jù)庫連接確認(rèn)后自動執(zhí)行功能 (autocommit) 會關(guān)閉。              Ora_CommitOff
                關(guān)閉自動執(zhí)行 Oracle 交易改動的功能。
                語法: int ora_commitoff(int conn);
                返回值: 整數(shù)
                函數(shù)種類: 數(shù)據(jù)庫功能
                內(nèi)容說明: 返回值 true 表示成功,false 表示發(fā)生錯誤。具體的錯誤糾錯可以使用 ora_error() 及 ora_errorcode()。在每次使用 ora_exec() 之后,本函數(shù)會關(guān)閉自動執(zhí)行功能。              Ora_CommitOn
                打開自動執(zhí)行 Oracle 交易改動的功能。
                語法: int ora_commiton(int conn);
                返回值: 整數(shù)
                函數(shù)種類: 數(shù)據(jù)庫功能
                內(nèi)容說明: 返回值 true 表示成功,false 表示發(fā)生錯誤。具體的錯誤糾錯可以使用 ora_error() 及 ora_errorcode()。在每次使用 ora_exec() 后的連接時,本函數(shù)會打開自動執(zhí)行功能。              Ora_Error
                獲得 Oracle 錯誤信息。
                語法: string Ora_Error(int c