Oracle 8 的函數(shù)介紹
發(fā)布時(shí)間:2008-04-07 閱讀數(shù): 次 來(lái)源:網(wǎng)樂(lè)原科技
這些函數(shù)允許你存取 Oracle8 和 Oracle7 數(shù)據(jù)庫(kù). 他使用 Oracle8 的點(diǎn)用接口 (OCI8). 使用這個(gè)擴(kuò)展模塊,你需要 Oracle8 客戶端庫(kù)文件.
這個(gè)擴(kuò)展模塊比標(biāo)準(zhǔn) Oracle 模塊更流暢。他支持用于 Oracle 站位符的全局和本機(jī) PHP 變量。有完整的 LOB, 文件和 ROWID 支持,允許使用用戶提供的定義的變量.
在使用這個(gè)擴(kuò)展之前,確認(rèn)你已經(jīng)正確的安裝了 oracle 用戶需要的 Oracle 環(huán)境變量, 和用于 daemon 用戶的一樣. 需要設(shè)置的變量大致為如下幾個(gè):
ORACLE_HOME
ORACLE_SID
LD_PRELOAD
LD_LIBRARY_PATH
NLS_LANG
ORA_NLS33
在設(shè)置了你的 web 服務(wù)器用戶的環(huán)境變量之后,確認(rèn)在你的 oracle 組里面加入了 web服務(wù)器用戶 (nobody, www).
例 1.
<?php
// 作者 sergo@bacup.ru
// 使用參數(shù)配置: OCI_DEFAULT 執(zhí)行命令來(lái)延遲執(zhí)行
OCIExecute($stmt, OCI_DEFAULT);
// 得到數(shù)據(jù):
$result = OCIResult($stmt, $n);
if (is_object ($result)) $result = $result->load();
// 進(jìn)行插入或者更新操作:
$sql = "insert into table (field1, field2) values (field1 = ’value’,
field2 = empty_clob()) returning field2 into :field2";
OCIParse($conn, $sql);
$clob = OCINewDescriptor($conn, OCI_D_LOB);
OCIBindByName ($stmt, ":field2", &$clob, -1, OCI_B_CLOB);
OCIExecute($stmt, OCI_DEFAULT);
$clob->save ("some text");
?>
你可以用同樣簡(jiǎn)單的方法存儲(chǔ)程序命令行.
例 2. 用于存儲(chǔ)進(jìn)程(程序)
<?php
// 作者 webmaster@remoterealty.com
$sth = OCIParse ( $dbh, "begin sp_newaddress( :address_id, ’$firstname’,
’$lastname’, ’$company’, ’$address1’, ’$address2’, ’$city’, ’$state’,
’$postalcode’, ’$country’, :error_code );end;" );
// 這個(gè)調(diào)用用于存儲(chǔ)進(jìn)程 sp_newaddress, 使用 :address_id 開(kāi)始一個(gè)
// in/out 變量和 :error_code 用于輸出變量.
// 這樣實(shí)現(xiàn)捆綁:
OCIBindByName ( $sth, ":address_id", $addr_id, 10 );
OCIBindByName ( $sth, ":error_code", $errorcode, 10 );
OCIExecute ( $sth );
?>
函數(shù)列表
OCIDefineByName — 在一個(gè) SELECT 過(guò)程中定義步驟里使用 PHP 變量
OCIBindByName — 為一個(gè) Oracle 站位符捆綁一個(gè) PHP 變量
OCILogon — 建立一個(gè)與 Oracle 的連接
OCIPLogon — 連接一個(gè) Oracle 數(shù)據(jù)庫(kù)同時(shí)使用存在的連接登陸,返回一個(gè)新的 session.
OCINLogon — 連接一個(gè) Oracle 數(shù)據(jù)庫(kù)同時(shí)使用新的連接登陸,返回一個(gè)新的 session.
OCILogOff — 斷開(kāi)與 Oracle 的連接
OCIExecute — 執(zhí)行一個(gè)語(yǔ)句
OCICommit — 提交 outstanding transactions
OCIRollback — 回退 outstanding transactions
OCINewDescriptor — 初始化一個(gè)新的空的描述符 LOB/FILE (LOB 是默認(rèn)值)
OCIRowCount — 獲得返回的行數(shù)
OCINumCols — 返回一個(gè)語(yǔ)句結(jié)果的列數(shù)
OCIResult — 返回返回行的列數(shù)
OCIFetch — 在結(jié)果緩沖區(qū)里取得下一行
OCIFetchInto — 在結(jié)果數(shù)組里取得下一行
OCIFetchStatement — 以數(shù)據(jù)形式返回結(jié)果數(shù)據(jù)的所有行.
OCIColumnIsNULL — 測(cè)試結(jié)果的某列是否為空 NULL
OCIColumnSize — 返回結(jié)果列的大小
OCIServerVersion — 返回包含服務(wù)器信息的字符串.
OCIStatementType — 返回一個(gè) OCI 語(yǔ)句的類型.
OCINewCursor — 返回一個(gè)新的光標(biāo) (語(yǔ)句句柄) - 用于捆綁 ref-cursors!
OCIFreeStatement — 釋放與某語(yǔ)句相關(guān)的所有資源.
OCIFreeCursor — 釋放與某光標(biāo)相關(guān)的所有資源.
OCIFreeDesc — 刪除一個(gè)大型的物體描述符.
OCIColumnName — 返回列的名字.
OCIColumnType — 返回列的類型.
OCIParse — 解析一個(gè)查詢返回一個(gè)語(yǔ)句
OCIError — 返回最后一個(gè) stmt|conn|global 錯(cuò)誤. 如果沒(méi)有錯(cuò)誤發(fā)生則返回 false.
OCIInternalDebug — 打開(kāi)或關(guān)閉內(nèi)部調(diào)試輸出. 缺省時(shí)關(guān)閉