ibase_fetch_row

(PHP 5)

ibase_fetch_rowFetch a row from an InterBase database

Описание

array ibase_fetch_row ( resource $result_identifier [, int $fetch_flag = 0 ] )

ibase_fetch_row() fetches one row of data from the given result set.

Subsequent calls to ibase_fetch_row() return the next row in the result set, or FALSE if there are no more rows.

Список параметров

result_identifier

An InterBase result identifier.

fetch_flag

fetch_flag is a combination of the constants IBASE_TEXT and IBASE_UNIXTIME ORed together. Passing IBASE_TEXT will cause this function to return BLOB contents instead of BLOB ids. Passing IBASE_UNIXTIME will cause this function to return date/time values as Unix timestamps instead of as formatted strings.

Возвращаемые значения

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows. Each result column is stored in an array offset, starting at offset 0.

Смотрите также

Коментарии

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_varsibase_fetch_objectibase_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
2003-07-08 15:41:57
http://php5.kiev.ua/manual/ru/function.ibase-fetch-row.html
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]
}

?>
2006-03-16 08:06:18
http://php5.kiev.ua/manual/ru/function.ibase-fetch-row.html

    Поддержать сайт на родительском проекте КГБ