PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

ibase_field_info> <ibase_fetch_object
Last updated: Fri, 18 Jul 2008

view this page in

ibase_fetch_row

(PHP 4, PHP 5)

ibase_fetch_row — Pobiera wiersz wyniku zapytania w postaci tablicy numerycznej

Opis

array ibase_fetch_row ( resource $identyfikator_wyniku [, int $znacznik_pobrania ] )

ibase_fetch_row() pobiera jeden wiersz zawierający dane z podanego zbioru wynikowego.

Kolejne wywołanie ibase_fetch_row() zwróci następny wiersz ze zbioru wynikowego, lub FALSE jeśli nie ma już więcej wierszy.

Parametry

identyfikator_wyniku

Identyfikator wyniku Firebird/Interbase.

znacznik_pobrania

znacznik_pobrania jest kombinacją stałych IBASE_TEXT i IBASE_UNIXTIME łączonych ze sobą przy pomocy operatora sumy bitowej. Przekazanie stałej IBASE_TEXT powoduje, że ta funkcja zwraca zawartość BLOBa zamiast identyfikatora BLOBa. Przekazanie stałej IBASE_UNIXTIME powoduje, że ta funkcja zwraca wartości daty/czasu w postaci unixowego znacznika czasu, zamiast sformatowanego łańcucha.

Zwracane wartości

Zwraca tablicę numeryczną odpowiadającą pobranemu wierszowi, lub FALSE jeśli nie ma już więcej wierszy. Wartości kolumn są umieszczane na kolejnych pozycjach tablicy, zaczynając od 0.



add a note add a note User Contributed Notes
ibase_fetch_row
richard at wojthegame dot com
16-Mar-2006 03: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
08-Jul-2003 09: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

ibase_field_info> <ibase_fetch_object
Last updated: Fri, 18 Jul 2008
 
 
show source | credits | sitemap | contact | advertising | mirror sites