php oracle 集合 取数据库中,PHP: 如何连接oracle数据库进行数据读取

今天在给客户修改一套报表程序时遇到的问题,PHP和Oracle正好都不是我最熟悉的,但看了一些资料,勉强能改改。他们这套报表程序并不是很复杂,之前也是自己捣鼓捣鼓用PHP写的。其实用不用PHP并不是关键,我的主要使命是要对报表系统的架构上做一些优化。经过我们的努力,原先很多分散的页面都进行了整合,数据库结构也进行了一些优化。

例如不管报表的数据源是oracle,还是sql server,我们都可以使用同一个页面来完成查询和展现。以后增加报表的时候,只需要在数据库中进行配置即可,无需修改或者增加页面。

另外,不管报表是要在浏览器中查看还是要导出Excel格式,我们都可以用同一个页面来实现,无需用多个页面。

关于在PHP中连接Oracle的范例,摘录一个如下

oci_fetch_all

(PHP 5, PECL oci8:1.1-1.2.4)

oci_fetch_all — 获取结果数据的所有行到一个数组

说明int

oci_fetch_all ( resource $statement, array &$output [, int $skip [, int $maxrows [, int $flags]]] )

oci_fetch_all() 从一个结果中获取所有的行到一个用户定义的数组。oci_fetch_all() 返回获取的行数,出错则返回 FALSE。skip 是从结果中获取数据时,最开始忽略的行数(默认值是 0,即从第一行开始)。maxrows 是要读取的行数,从第 skip 行开始(默认值是 -1,即所有行)。

注意:本函数对 PHP NULL 值设定 NULL 字段。

flags 参数可以是下列值的任意组合:

OCI_FETCHSTATEMENT_BY_ROW

OCI_FETCHSTATEMENT_BY_COLUMN(默认值)

OCI_NUM

OCI_ASSOC

例 1583. oci_fetch_all() 例子

/* oci_fetch_all example mbritton at verinet dot com (990624) */

$conn = oci_connect("scott", "tiger");

$stmt = oci_parse($conn, "select * from emp");

oci_execute($stmt);

$nrows = oci_fetch_all($stmt, $results);

if ($nrows > 0) {

echo "

/n";

echo "

/n";

foreach ($results as $key => $val) {

echo "

/n";

}

echo "

/n";

for ($i = 0; $i < $nrows; $i++) {

echo "

/n";

foreach ($results as $data) {

echo "

/n";

}

echo "

/n";

}

echo "

$key

$data[$i]

/n";

} else {

echo "No data found

/n";

}

echo "$nrows Records Selected

/n";

oci_free_statement($stmt);

oci_close($conn);

?>

有关 OCI8 驱动程序执行的数据类型映射的细节,见驱动程序支持的数据类型。

oci_fetch_all() 如果出错则返回 FALSE。

注意:在 PHP 5.0.0 之前的版本必须使用 ocifetchstatement() 替代本函数。该函数名仍然可用,为向下兼容作为 oci_fetch_all() 的别名。不过其已被废弃,不推荐使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值