Signatur
Beschreibung
fbird_fetch_row() liest die nächste Zeile aus einem Firebird- oder InterBase-Ergebnisressource und gibt sie als numerisch indiziertes Array zurück. Jeder Spalte im Ergebnis entspricht ein Array-Element, beginnend mit Index 0. Die Funktion ist das Pendant zu fbird_fetch_assoc(), liefert jedoch Spaltennamen nicht als Schlüssel, sondern nur numerische Indizes.
Typisch wird fbird_fetch_row() in einer while-Schleife eingesetzt, um sämtliche Zeilen eines Ergebnisses der Reihe nach zu verarbeiten. Sobald keine weiteren Zeilen vorhanden sind, gibt die Funktion false zurück, was die Schleife beendet.
Mit dem optionalen Parameter $fetch_flags kann gesteuert werden, ob BLOB-Felder automatisch abgerufen werden sollen (IBASE_FETCH_BLOBS) oder ob Arrays zurückgegeben werden sollen (IBASE_FETCH_ARRAYS). Diese Flags können mit dem bitweisen OR-Operator kombiniert werden.
Hinweis: Die Funktionen fbird_* sind Aliase der ibase_*-Funktionen und stehen nur zur Verfügung, wenn PHP mit der interbase- oder firebird-Erweiterung kompiliert wurde. Ab PHP 8.0 wird die Erweiterung nicht mehr im PHP-Kern mitgeliefert und muss als PECL-Paket installiert werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $result Pflicht | resource | Eine gültige Ergebnisressource, die von fbird_query() oder fbird_execute() zurückgegeben wurde. |
|
| $fetch_flags | int | 0 | Optionale Bitmaske zur Steuerung des Abrufverhaltens. Mögliche Konstanten: IBASE_FETCH_BLOBS (BLOB-Inhalte direkt abrufen) und IBASE_FETCH_ARRAYS (Array-Spalten abrufen). Können mit | kombiniert werden. |
Rückgabewert
false zurückgegeben.Beispiele
Alle Zeilen einer Tabelle ausgeben
<?php
$dbh = fbird_connect('localhost:/path/to/database.fdb', 'sysdba', 'masterkey');
if (!$dbh) {
die('Verbindung fehlgeschlagen: ' . fbird_errmsg());
}
$result = fbird_query($dbh, 'SELECT id, name, email FROM users');
while ($row = fbird_fetch_row($result)) {
echo 'ID: ' . $row[0] . ', Name: ' . $row[1] . ', E-Mail: ' . $row[2] . PHP_EOL;
}
fbird_free_result($result);
fbird_close($dbh);
BLOB-Felder direkt abrufen
<?php
$dbh = fbird_connect('localhost:/path/to/database.fdb', 'sysdba', 'masterkey');
$result = fbird_query($dbh, 'SELECT id, description FROM articles WHERE id = 1');
// IBASE_FETCH_BLOBS sorgt dafür, dass BLOB-Spalten direkt als String geliefert werden
$row = fbird_fetch_row($result, IBASE_FETCH_BLOBS);
if ($row !== false) {
echo 'Artikel-ID: ' . $row[0] . PHP_EOL;
echo 'Beschreibung: ' . $row[1] . PHP_EOL;
}
fbird_free_result($result);
fbird_close($dbh);
// Wichtig · Fallstricke
Deprecation/Verfügbarkeit: Die fbird_*-Funktionen sind Aliase für die ibase_*-Funktionen. Die interbase-Erweiterung wurde mit PHP 8.0 aus dem PHP-Core entfernt. Für PHP 8+ muss die PECL-Erweiterung ibase oder alternativ der Firebird PDO-Treiber (PDO_FIREBIRD) verwendet werden.
Spalten werden in der Reihenfolge zurückgegeben, in der sie in der SELECT-Anweisung angegeben wurden. Wird SELECT * verwendet, richtet sich die Reihenfolge nach der Tabellendefinition.
Für lesbareren Code, insbesondere wenn Spaltennamen im Code referenziert werden sollen, ist fbird_fetch_assoc() vorzuziehen, da es sprechende Schlüssel verwendet.