Signatur
Beschreibung
fbird_num_fields() ermittelt, wie viele Felder (Spalten) eine zuvor ausgeführte Firebird- oder InterBase-Datenbankabfrage zurückliefert. Die Funktion ist hilfreich, wenn die Struktur der Ergebnismenge zur Laufzeit nicht bekannt ist, z. B. beim dynamischen Verarbeiten beliebiger SELECT-Statements.
Typische Anwendungsfälle sind das generische Iterieren über alle Spalten eines Ergebnisses, das Aufbauen dynamischer Tabellenausgaben oder das Validieren von Abfrageergebnissen in Test-Szenarien. Der Rückgabewert entspricht exakt der Anzahl der im SELECT-Teil genannten Spalten, einschließlich berechneter Ausdrücke und Aliase.
Die Funktion ist ein Alias für ibase_num_fields() und steht in Verbindung mit der Firebird-Erweiterung (php_interbase bzw. php_firebird). Sie arbeitet ausschließlich mit gültigen Ergebnis-Ressourcen, die von fbird_query() oder fbird_execute() zurückgegeben wurden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $result Pflicht | resource | Eine gültige Ergebnis-Ressource, die von fbird_query() oder fbird_execute() zurückgegeben wurde. |
Rückgabewert
false zurückgegeben.Beispiele
Anzahl der Felder einer SELECT-Abfrage ausgeben
<?php
$dbh = fbird_connect('localhost:/var/lib/firebird/employee.fdb', 'sysdba', 'masterkey');
if (!$dbh) {
die('Verbindung fehlgeschlagen: ' . fbird_errmsg());
}
$result = fbird_query($dbh, 'SELECT EMP_NO, FIRST_NAME, LAST_NAME, SALARY FROM EMPLOYEE');
if ($result) {
$anzahl = fbird_num_fields($result);
echo "Anzahl der Felder: " . $anzahl . PHP_EOL;
} else {
echo 'Abfrage fehlgeschlagen: ' . fbird_errmsg();
}
fbird_close($dbh);
Dynamisches Auslesen aller Spalteninformationen
<?php
$dbh = fbird_connect('localhost:/var/lib/firebird/employee.fdb', 'sysdba', 'masterkey');
$result = fbird_query($dbh, 'SELECT EMP_NO, FIRST_NAME, LAST_NAME FROM EMPLOYEE');
if ($result) {
$anzahl = fbird_num_fields($result);
echo "Die Abfrage hat {$anzahl} Felder:" . PHP_EOL;
for ($i = 0; $i < $anzahl; $i++) {
$feldInfo = fbird_field_info($result, $i);
echo " - Feld #{$i}: " . $feldInfo['name'] . ' (' . $feldInfo['type'] . ')' . PHP_EOL;
}
}
fbird_close($dbh);
// Wichtig · Fallstricke
Alias: fbird_num_fields() ist ein Alias von ibase_num_fields(). Beide Funktionen sind funktional identisch. In neuerem Code wird empfohlen, einheitlich entweder das fbird_- oder das ibase_-Präfix zu verwenden.
Deprecation: Die InterBase/Firebird-Erweiterung wurde in PHP 7.4 als veraltet markiert und in PHP 8.0 aus dem Core entfernt. Für aktuelle Projekte sollte stattdessen die Firebird PDO-Erweiterung oder eine externe PECL-Erweiterung verwendet werden.
Die Funktion funktioniert nur mit SELECT-Abfragen oder anderen Abfragen, die ein Ergebnis zurückliefern. Für INSERT-, UPDATE- oder DELETE-Statements ist sie nicht anwendbar.