Start · Sprachen · PHP · Referenz · fbird_fetch_row

fbird_fetch_row

Funktion

Holt die nächste Zeile aus einem Firebird/InterBase-Abfrageergebnis als numerisch indiziertes Array.

seit PHP 5.0.0 Kategorie: db

Signatur

fbird_fetch_row(resource $result, int $fetch_flags = 0): array|false

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

Typ
array|false
Beschreibung
Gibt ein numerisch indiziertes Array zurück, das die Werte der nächsten Zeile des Ergebnisses enthält. Wenn keine weiteren Zeilen vorhanden sind oder ein Fehler auftritt, wird 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);
ID: 1, Name: Max Mustermann, E-Mail: max@example.com ID: 2, Name: Erika Muster, E-Mail: erika@example.com

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);
Artikel-ID: 1 Beschreibung: Dies ist der vollständige Beschreibungstext des Artikels.

// 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.