欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 由于本函式库都是呼叫 Oracle8 Call-Interface (OCI8) 来存取 Oracle 资料库,因此在装设 Oracle 8 Client 的 Web 伺服器上,可用本函式库存取 Oracle 7.x 或 8.x 二种版本的资料库伺服器。 OCIDefi
欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入
由于本函式库都是呼叫 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" ) or die;
$cursor = ora_open ( $handle );
ora_commitoff ( $handle );
$query = "SELECT * FROM EMP" ;
ora_parse ( $cursor , $query ) or die;
ora_exec ( $cursor );
echo "
\n" ;\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 "
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 的长期连结。