由于本函式库都是呼叫 Oracle8 Call-Interface (OCI8) 来存取 Oracle 资料库,因此在装设 Oracle 8 Client 的 Web 伺服器上,可用本函式库存取 Oracle 7.x 或 8.x 二种版本的资料库伺服器。
OCIDefineByName:
让 SELECT 指令可使用 PHP 变数。
OCIBindByName:
让动态 SQL 可使用 PHP 变数。
OCILogon:
开启与 Oracle 的连结。
OCILogOff:
关闭与 Oracle 的连结。
OCIExecute:
执行 Oracle 的指令区段。
OCICommit:
将 Oracle 的交易处理付诸实行。
OCIRollback:
撤消当前交易。
OCINumRows:
取得受影响栏位的数目。
OCIResult:
从目前列 (row) 的资料取得一栏 (column)。
OCIFetch:
取得传回资料的一列 (row)。
OCIFetchInto:
取回 Oracle 资料放入阵列。
OCIColumnIsNULL:
测试传回行是否为空的。
OCIColumnSize:
取得栏位型态的大小。
OCINewDescriptor:
初始新的 LOB/FILE 描述。
OCIParse:
分析 SQL 语法。
要使用这个函式库,要在安装 PHP 及 Apache Server 之前先将 Oracle 资料库安装好,并确定 Oracle 能够顺利运作。之后在 PHP 设定 (configure) 时加入 --with-oracle=DIR 的选项,DIR 就是 $ORACLE_HOME 环境变数,例如:
./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 资料库 (Database) 的 EMP 资料表 (Table) 所有资料。帐号是 SCOTT、密码为 TIGER。
putenv("ORACLE_SID=sid1");
putenv("ORACLE_HOME=/u01/app/oracle/product/8.0.5");
$handle=ora_plogon("SCOTT@sid1","TIGER")ordie;
$cursor=ora_open($handle);
ora_commitoff($handle);
$query="SELECT*FROMEMP";
ora_parse($cursor,$query)ordie;
ora_exec($cursor);
echo"\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"\nROWSRETURNED:$numrows\n";
echo"
\n";
ora_close($cursor);
?>
kk@shonline.de (05-Aug-1998) 指出 ORACLE_HOME 为 Oracle 的安装路径,ORACLE_SID 为 Oracle 的资料库名称,若不知道这二个环境变数可以用 sqlplus 连上 Oracle 来查证。
Ora_Bind:
连结 PHP 变数到 Oracle 参数。
Ora_Close:
关闭一个 Oracle 的 cursor。
Ora_ColumnName:
得到 Oracle 传回列 (Column) 的名称。
Ora_ColumnType:
得到 Oracle 传回列 (Column) 的型态。
Ora_Commit:
将 Oracle 的交易处理付诸实行。
Ora_CommitOff:
关闭自动执行 Oracle 交易更动的功能。
Ora_CommitOn:
打开自动执行 Oracle 交易更动的功能。
Ora_Error:
获得 Oracle 错误讯息。
Ora_ErrorCode:
获得 Oracle 错误代码。
Ora_Exec:
执行 Oracle 的指令区段。
Ora_Fetch:
取得传回资料的一列 (row)。
Ora_GetColumn:
从传回列 (row) 的资料取得一栏 (column)。
Ora_Logoff:
结束与 Oracle 的连结。
Ora_Logon:
开启与 Oracle 的连结。
Ora_Open:
开启 Oracle 的 cursor。
Ora_Parse:
分析 SQL 语法。
Ora_Rollback:
撤消当前交易。
Ora_Do:
快速的 SQL 查询。
Ora_FetchInto:
取回 Oracle 资料放入阵列。
Ora_ColumnSize:
取得栏位型态的大小。
Ora_Numcols:
取得栏位的数目。
Ora_PLogon:
开启与 Oracle 的长期连结。