Start · Sprachen · PHP · Referenz · fbird_param_info

fbird_param_info

Funktion

Gibt Informationen zu einem Parameter einer vorbereiteten Firebird/InterBase-Abfrage zurück.

seit PHP 5.0.0 Kategorie: db

Signatur

fbird_param_info(resource $query, int $param_number): array|false

Beschreibung

fbird_param_info() liefert Metadaten zu einem bestimmten Eingabe-Parameter einer mit fbird_prepare() vorbereiteten SQL-Anweisung. Die Funktion ist das Gegenstück zu fbird_field_info(), das Informationen über Ergebnis-Spalten liefert.

Das zurückgegebene assoziative Array enthält Details wie den Namen, den Alias, den Datentyp, die Länge und die Skalierung des Parameters. Diese Informationen sind hilfreich, wenn man dynamisch SQL-Statements verarbeitet und die erwarteten Datentypen der Platzhalter (?) kennen muss, bevor man Werte übergibt.

Die Funktion wird hauptsächlich in Bibliotheken oder abstrakten Datenbankschichten eingesetzt, die automatisch Parameter binden oder validieren müssen. In normalen Anwendungen ist sie seltener erforderlich, da Entwickler in der Regel selbst wissen, welche Typen ihre Parameter haben.

Hinweis: fbird_param_info() ist ein Alias für ibase_param_info(). Die ibase/fbird-Erweiterung wurde mit PHP 8.0 aus dem PHP-Kern entfernt und steht seitdem nur noch über PECL zur Verfügung.

Parameter

Name Typ Default Beschreibung
$query Pflicht resource Eine vorbereitete Abfrage, die mit fbird_prepare() erzeugt wurde.
$param_number Pflicht int Der nullbasierte Index des Parameters, über den Informationen abgerufen werden sollen. Der erste Parameter hat den Index 0.

Rückgabewert

Typ
array|false
Beschreibung
Gibt bei Erfolg ein assoziatives Array mit den folgenden Schlüsseln zurück: name (Parametername), alias (Alias), relation (Tabellenname), length (Länge in Bytes), type (Datentypbezeichnung als String). Im Fehlerfall wird false zurückgegeben.

Beispiele

Parameterinformationen einer vorbereiteten Abfrage ausgeben

<?php
$dbh = fbird_connect('localhost:mydb.fdb', 'SYSDBA', 'masterkey');

$sql = 'SELECT * FROM orders WHERE customer_id = ? AND order_date > ?';
$stmt = fbird_prepare($dbh, $sql);

// Informationen zum ersten Parameter (Index 0)
$info0 = fbird_param_info($stmt, 0);
print_r($info0);

// Informationen zum zweiten Parameter (Index 1)
$info1 = fbird_param_info($stmt, 1);
print_r($info1);

fbird_close($dbh);
?>
Array ( [name] => CUSTOMER_ID [alias] => CUSTOMER_ID [relation] => ORDERS [length] => 4 [type] => INTEGER ) Array ( [name] => ORDER_DATE [alias] => ORDER_DATE [relation] => ORDERS [length] => 4 [type] => DATE )

Alle Parameter einer Abfrage iterieren

<?php
$dbh = fbird_connect('localhost:mydb.fdb', 'SYSDBA', 'masterkey');

$sql = 'INSERT INTO products (name, price, stock) VALUES (?, ?, ?)';
$stmt = fbird_prepare($dbh, $sql);

$numParams = 3;
for ($i = 0; $i < $numParams; $i++) {
    $info = fbird_param_info($stmt, $i);
    if ($info !== false) {
        echo "Parameter $i: Name={$info['name']}, Typ={$info['type']}, Länge={$info['length']}\n";
    }
}

fbird_close($dbh);
?>
Parameter 0: Name=NAME, Typ=VARCHAR, Länge=100 Parameter 1: Name=PRICE, Typ=NUMERIC, Länge=8 Parameter 2: Name=STOCK, Typ=INTEGER, Länge=4

// Wichtig · Fallstricke

Deprecation/Entfernung: Die Firebird/InterBase-Erweiterung (ibase_*/fbird_*) wurde mit PHP 8.0 aus dem PHP-Kern entfernt. Ab PHP 8.0 muss die Erweiterung über PECL installiert werden (php-firebird). Für neue Projekte empfiehlt sich der Einsatz von PDO_Firebird als modernere und aktiv gepflegte Alternative.

fbird_param_info() ist ein direkter Alias von ibase_param_info() — beide Funktionen verhalten sich identisch.

Der Parameter-Index ist nullbasiert. Ein Zugriff auf einen ungültigen Index gibt false zurück und erzeugt einen PHP-Fehler.