欢迎进入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 环境变数,例如:
<font face="新宋体">./configure --with-oracle=/abc/def/oracle/product/7.0.3 --with-apache=../apache_1.3.x --enable-track-vars</font>
以下的范例是 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"<font>;<br>echo </font><font>"$query</font><font>\n\n</font><font>"</font><font>;<br></font><font>$numcols </font><font>= </font><font>0</font><font>;<br>while(</font><font>ora_fetch</font><font>(</font><font>$cursor</font><font>)) {<br> </font><font>$numcols </font><font>= </font><font>ora_numcols</font><font>(</font><font>$cursor</font><font>);<br> for (</font><font>$column</font><font>=</font><font>0</font><font>; </font><font>$column </font><font><font>$numcols</font><font>; </font><font>$column</font><font>++) {<br> </font><font>$data </font><font>= </font><font>trim</font><font>(</font><font>ora_getcolumn</font><font>(</font><font>$cursor</font><font>, </font><font>$column</font><font>));<br> if(</font><font>$data </font><font>== </font><font>""</font><font>) </font><font>$data </font><font>= </font><font>"NULL"</font><font>;<br> echo </font><font>"$data</font><font>\t</font><font>"</font><font>;<br> }<br> echo </font><font>"\n"</font><font>;<br>}<br></font><font>$numrows </font><font>= </font><font>ora_numrows</font><font>(</font><font>$cursor</font><font>);<br>echo </font><font>"</font><font>\n</font><font>ROWS RETURNED: $numrows</font><font>\n</font><font>"</font><font>;<br>echo </font><font>"</font></font>
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 的长期连结。 |