PHPOracleOCI初步节能

从Oracle(OCI)开始 在越来越多的PHP用户选择Oracle作为他们的数据库的情况下,如何访问PHP发布环境下的Oracle接口变的越发的重要了。我们将从快速的浏览一个简单基本且是更加明确的Oracle 的情况开始我们的旅程。Oralce 和Oralce8 使用PHP的OCI8 函数库。在PHP手册里有简要的说明( 这些函数允许你访问Oracle 和 Oracle7d 的数据库,它们使用的是Oracle8 Call-Interface(OCI8)。你将需要Oracle8 的客户端函数库来使用这些扩展功能。

这些扩展功能比起标准的Oracle扩展功能来更加的灵活,它支持PHP全局及本地变量及与Oracle的连编,有完整的LOB,FILE及ROWID的支持并且允许你定义用户补充变量。

以筹募30万令吉的“发展及福利基金”。  增江北区华小董事长叶新田发表文告说

从这里开始,我将使用“Oracle”指代任何Oracle版本,这篇文章假定你已经安装并运行了PHP和Oracle。而Oracle的帮助可以在 或者 找到。

本文的观点是

1.连接到ORALCLE

2.建立并运行SQL语句

3.显示结果

4.限制/偏移量 接近“标记页数”的结果

作为一个附加的功能。你可以看看如何完成显示一个从很大的数据结果得出的限制/偏移量的查询。

?php

/*我们将从一个基础的使用显示一个方案。在这个例子里使用的文件是由Rod Kreisler编写的新版本的文章(。新版本的文件可以在 找到。把$offset设置为0,如果被设置为0或者空的话。

*/

if (empty($offset) || $offset 0) {

$offset=0;

}

/*我们将从一个基础的使用显示一个方案。在这个例子里使用的文件是由Rod Kreisler编写的新版本的文章(。新版本的文件可以在 找到。把$offset设置为0,如果被设置为0或者空的话。

*/

if (empty($offset) || $offset 0) {

$offset=0;

}

$limit = 3;

/*

连接到Oralce,如果你愿意的话,可以在连接数据库的时候直接使用ORACLE_SID。使用PHP作为CGI使用非连续的连接,现在让我们在这个例子里使用这种非连续的连接。在windows里这个可以在注册表里设置,而在unix里你可以使用 putenv()函数putenv(“ORALCE_SID=ORASID”);

或者 ,如果你愿意,你可以在连接数据库的时候直接参考你的ORACLE_SID,让我们在这个例子里直接参考ORACLE_SID。

如果你使用PHP作为APACHE的模块的话,你可以使用持续连接。而使用非持续连接在使用PHP时作为CGI时,我们在这个例子里使用非持续连接。

*/

$conn = OCILogon("user_name", "password", "ORASID");

/*

错误提示。在没有数据库被连接的情况下,将会显示的错误信息并且退出脚本的执行。

*/

if (!$conn) {

echo "h1ERROR - Could not connect to Oracle/h1";

exit;

}

/*

如果连接成功,$conn就是一个连接符。否则,脚本将结束并且输出“Could not connect to Oracle”的错误信息

现在开始来分析并且创建你的SQL语句,由无限制的查询结果得到可以记数的记录。

在这里的格式语句“Select count(*) from table_name”相当于count(),是个SQL函数将会在数据库里执行。比由依靠PHP计算得到的返回结果要好。

*/

$sql = "Select count(*) from table_name";

$stmt = OCIParse($conn, $sql);

if(!$stmt) {

echo "h1ERROR - Could not parse SQL statement./h1";

exit;

}

/*

如果你输入了一个错误的SQL语句或者出现了另一个错误,你将看到“无法分析SQL”的错误提示,$stmt现在就是一个定义语句。

现在执行你的分析语句

*/

OCIExecute($stmt);

/*

语句现在已经被执行了,但是正如你所看到的,没有结果标志符从OCIExecute()返回,由OCIParse()返回的结果包含了所有Oracle所需要的信息。

现在开始选择这个查询的结果,$total rows[0]将会包含一个数。如果没有行被返回,则显示错误并退出脚本的运行。

*/

OCIFetchInto($stmt, $total_rows);

if ( !$total_rows[0] ) {

echo "h1Error - no rows returned!/h1";

exit;

}

/*

这段代码是可选择的但将会使返回的结果更清楚,显示一个类似于“总共有15条记录,现在显示的是第4条到第15条结果。”的注释

*特色产品吸人眼球/

$begin =($offset+1);

$end = ($begin+($limit-1));

if ($end $total_rows[0]) {

$end = $total_rows[0];

}

echo "There are b$total_rows[0]/b \n";

echo "Now showing results b$begin/b to b$end/br\n";

/*

有汗臭用止汗剂有用吗
长春哪里治疗白癜风
口腔科