Manual should be fixed to state the default value of $flag for this function.
ibase_fetch_row
(PHP 4, PHP 5)
ibase_fetch_row — InterBase データベースから 1 行分の結果を取得する
説明
array ibase_fetch_row
( resource $result_identifier
[, int $fetch_flag = 0
] )
ibase_fetch_row() は、指定した result_identifier に関連付けられた結果からデータを 1 行取得します。
ibase_fetch_row() を続けてコールすると、 結果セットの次の行を返します。行がもうない場合には FALSE を返します。
パラメータ
- result_identifier
-
InterBase 結果 ID。
- fetch_flag
-
fetch_flag は、定数 IBASE_TEXT および IBASE_UNIXTIME を論理和で指定します。IBASE_TEXT を渡すと、BLOB ID のかわりに BLOB の内容自体を返します。IBASE_UNIXTIME を渡すと、日付/時刻の値を文字列ではなく Unix タイムスタンプで返します。
返り値
取得した行に対応する配列を返します。行がもうない場合には FALSE を返します。 結果の各行は配列のオフセットに格納され、 このオフセットは 0 から始まります。
ibase_fetch_row
mbabuskov at yahoo dot com
10-Oct-2008 05:40
10-Oct-2008 05:40
richard at wojthegame dot com
16-Mar-2006 11:06
16-Mar-2006 11:06
If you have a query
"select ... from table1 where ..."
and would like to know the cardinality of the result set by issuing a separate query
"select count(*) from table1 where ..."
then you might end up with an incorrect value since an insert or delete can occur between the running of these queries (unlikely, but possible).
The only way i can think of getting the correct value would be something along the lines of
<?php
$qry = "select ... from table1 where ...";
$result = ibase_query($tr, $qry) // assume $tr is a transaction
$count = 0;
while ($row[$count] = ibase_fetch_assoc($result))
$count++;
?>
then $count is the cardinality, and $row the result set.
Then you can work with the result set:
<?php
for ($i = 0; $i < $count; $i++)
{
// do something with $row[$i]
}
?>
gurroa at gurroa dot cz
09-Jul-2003 04:41
09-Jul-2003 04:41
I had some troubles with moving php application from one dbase to another. From SyBase to Interbase.
Especially with missing function "ibase_num_rows($result)".
These are functions that helped me.
<?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));
}
// example
$result = ibasequery("SELECT * FROM TABLE");
$numrows = ibasenumrows($result);
echo "Number of rows: $numrows.\nContent: \n";
while ($onerow = ibasefetchrow($res)) {
foreach($onerow as $key => $value) {
echo $key.": ".$value.", ";
}
echo "\n";
}
?>
Gurroa
