Manual should be fixed to state the default value of $flag for this function.
ibase_fetch_row
(PHP 4, PHP 5)
ibase_fetch_row — Obtém uma linha de um banco de dados InterBase
Descrição
ibase_fetch_row() fetches one row of data from the given result set.
A próxima chamada a ibase_fetch_row() retorna a próxima linha no conjunto de resultados, ou FALSE se não houverem mais linhas.
Parâmetros
- result_identifier
-
Um identificador de resultado InterBase.
- fetch_flag
-
fetch_flag é uma combinação das constantes IBASE_TEXT e IBASE_UNIXTIME. Passando IBASE_TEXT irá fazer com que esta função retorne o conteúdo de BLOB, ao invés do id do BLOB. Passando IBASE_UNIXTIME irá fazer esta função retornar valores de data/hora como Unix timestamps ao invés de strings formatadas.
Valor Retornado
Retorna um array que corresponde a linha obtida, ou FALSE se não houver mais linhas. Cada coluna de resultado é armazenado em uma posição do array, iniciando no índice 0.
Veja Também
- ibase_fetch_assoc() - Obtém o resultado de uma linha da consulta como uma matriz associativa
- ibase_fetch_object() - Obtém uma linha como um objeto de um banco de dados InterBase
ibase_fetch_row
09-Oct-2008 08:40
16-Mar-2006 02: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]
}
?>
08-Jul-2003 07: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
