ibase_fetch_row

(PHP 5, PHP 7 < 7.4.0)

ibase_fetch_row从 InterBase 数据库中获取一行

描述

ibase_fetch_row(资源 $result_identifier, 整数 $fetch_flag = 0): 数组

ibase_fetch_row() 从给定结果集中获取一行数据。

ibase_fetch_row() 的后续调用将返回结果集中的下一行,或者如果不再有行,则返回 false

参数

result_identifier

一个 InterBase 结果标识符。

fetch_flag

fetch_flag 是常量 IBASE_TEXTIBASE_UNIXTIME 的组合,通过按位或运算符连接在一起。传递 IBASE_TEXT 将导致此函数返回 BLOB 内容而不是 BLOB ID。传递 IBASE_UNIXTIME 将导致此函数以 Unix 时间戳的形式返回日期/时间值,而不是以格式化字符串的形式。

返回值

返回一个与获取的行相对应的数组,或者如果不再有行,则返回 false。每个结果列都存储在一个数组偏移量中,从偏移量 0 开始。

参见

添加笔记

用户贡献的笔记 2 条笔记

richard at wojthegame dot com
18 年前
如果你有一个查询

"select ... from table1 where ..."

并且想要通过发出一个单独的查询来了解结果集的基数

"select count(*) from table1 where ..."

那么你最终可能会得到一个不正确的值,因为在执行这些查询之间可能会发生插入或删除(不太可能,但有可能)。
我想到的唯一获得正确值的办法是类似于

<?php

$qry
= "select ... from table1 where ...";
$result = ibase_query($tr, $qry) // 假设 $tr 是一个事务

$count = 0;
while (
$row[$count] = ibase_fetch_assoc($result))
$count++;

?>

那么 $count 是基数,$row 是结果集。
然后你可以使用结果集

<?php

for ($i = 0; $i < $count; $i++)
{
// 对 $row[$i] 做一些操作
}

?>
gurroa at gurroa dot cz
21 年前
我在将 PHP 应用程序从一个数据库迁移到另一个数据库时遇到了一些问题。从 SyBase 到 Interbase。
特别是缺少函数 "ibase_num_rows($result)"。

以下函数帮助了我。
<?php
...
$dbh = ibase_connect ($host, $username, $password);
...
$ar_count_queries = array();

function
ibasequery($query) {
$cquery = preg_replace("/SELECT(.*?)FROM(.*?)/","SELECT COUNT(*) FROM \\2",$query);
if (
$cquery != $query) {
$crow=get_object_vars( ibase_fetch_object( ibase_query( $GLOBALS["dbh"], $cquery ) ) );
}
@
$res = ibase_query($GLOBALS["dbh"],$query);
if (isset(
$res)) {
if (isset(
$crow)) {
$GLOBALS["ar_count_queries"][$res] = $radcountselect["COUNT"];
}
return
$res;
}
return
false;
}

function
ibasenumrows($result) {
return
$GLOBALS["ar_count_queries"][$res];
}

function
ibasefetchrow($result) {
return
get_object_vars(ibase_fetch_object($result));
}

// 例子
$result = ibasequery("SELECT * FROM TABLE");
$numrows = ibasenumrows($result);
echo
"行数: $numrows.\n内容: \n";
while (
$onerow = ibasefetchrow($res)) {
foreach(
$onerow as $key => $value) {
echo
$key.": ".$value.", ";
}
echo
"\n";
}
?>
Gurroa
To Top