Signatur
Beschreibung
fbird_field_info() liefert Metadaten zu einem Ergebnisfeld einer Firebird- oder InterBase-Datenbankabfrage. Das zurückgegebene Array enthält Informationen wie den Feldnamen, den Alias, den Tabellennamen sowie den Datentyp und die Länge des Feldes.
Die Funktion ist nützlich, wenn zur Laufzeit dynamisch mit Abfrageergebnissen gearbeitet wird und die Struktur des Ergebnissets nicht im Voraus bekannt ist – etwa beim Aufbau generischer Datenbankwerkzeuge, Exportfunktionen oder automatisch generierter Formulare.
Der Rückgabewert ist ein assoziatives Array mit den Schlüsseln name (Feldname), alias (Alias des Feldes in der Abfrage), relation (Tabellenname), length (Feldlänge in Bytes) und type (SQL-Datentyp als Zeichenkette).
Hinweis: fbird_field_info() ist ein Alias für ibase_field_info(). Beide Funktionen beziehen sich auf die InterBase/Firebird-Erweiterung (ibase). Die Erweiterung gilt ab PHP 7.4 als veraltet und wurde in PHP 8.0 aus dem offiziellen Core entfernt; sie steht seitdem als PECL-Paket (ibase) zur Verfügung.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $result Pflicht | resource | Eine gültige Ergebnis-Ressource, die von fbird_query() oder fbird_execute() zurückgegeben wurde. |
|
| $field_number Pflicht | int | Der nullbasierte Index des Feldes, über das Informationen abgerufen werden sollen. Das erste Feld hat den Index 0. |
Rückgabewert
name, alias, relation, length und type zurück. Im Fehlerfall wird false zurückgegeben.Beispiele
Feldmetadaten einer SELECT-Abfrage ausgeben
<?php
// Datenbankverbindung herstellen
$dbh = fbird_connect('localhost:/pfad/zur/datenbank.fdb', 'SYSDBA', 'masterkey');
// Abfrage ausführen
$result = fbird_query($dbh, 'SELECT id, vorname, nachname FROM kunden');
// Anzahl der Felder im Ergebnis ermitteln
$feldAnzahl = fbird_num_fields($result);
for ($i = 0; $i < $feldAnzahl; $i++) {
$info = fbird_field_info($result, $i);
echo 'Feld #' . $i . PHP_EOL;
echo ' Name: ' . $info['name'] . PHP_EOL;
echo ' Alias: ' . $info['alias'] . PHP_EOL;
echo ' Tabelle: ' . $info['relation'] . PHP_EOL;
echo ' Laenge: ' . $info['length'] . PHP_EOL;
echo ' Typ: ' . $info['type'] . PHP_EOL;
}
fbird_free_result($result);
fbird_close($dbh);
Generischer CSV-Export mit dynamischer Spaltenerkennung
<?php
$dbh = fbird_connect('localhost:/pfad/zur/datenbank.fdb', 'SYSDBA', 'masterkey');
$result = fbird_query($dbh, 'SELECT * FROM produkte');
$feldAnzahl = fbird_num_fields($result);
// Kopfzeile aus Feldnamen erzeugen
$kopfzeile = [];
for ($i = 0; $i < $feldAnzahl; $i++) {
$info = fbird_field_info($result, $i);
$kopfzeile[] = $info['name'];
}
echo implode(';', $kopfzeile) . PHP_EOL;
// Datensätze ausgeben
while ($zeile = fbird_fetch_row($result)) {
echo implode(';', $zeile) . PHP_EOL;
}
fbird_free_result($result);
fbird_close($dbh);
// Wichtig · Fallstricke
Deprecation / Entfernung: Die InterBase/Firebird-Erweiterung (ibase), zu der fbird_field_info() gehört, wurde ab PHP 7.4 als veraltet markiert und in PHP 8.0 aus dem PHP-Core entfernt. Für PHP 8+ steht sie als PECL-Erweiterung bereit. Als moderne Alternative wird die Verwendung von Firebird PDO (pdo_firebird) empfohlen.
fbird_field_info() ist ein Alias von ibase_field_info(). Beide Funktionen verhalten sich identisch.
Der Feldindex ist nullbasiert. Ein ungültiger Index führt zu einer Warnung und dem Rückgabewert false.