Signatur
Beschreibung
fbird_errcode() liefert den numerischen Fehlercode, der beim zuletzt aufgetretenen Fehler in einer Firebird- oder InterBase-Datenbankoperation erzeugt wurde. Die Funktion ist nützlich, um nach fehlgeschlagenen Datenbankoperationen gezielt auf bestimmte Fehlertypen zu reagieren, ohne die vollständige Fehlermeldung parsen zu müssen.
Die Funktion arbeitet eng mit fbird_errmsg() zusammen: Während fbird_errcode() den numerischen Code zurückgibt, liefert fbird_errmsg() die zugehörige Klartextbeschreibung. Beide Funktionen beziehen sich stets auf den zuletzt aufgetretenen Fehler innerhalb des aktuellen PHP-Prozesses.
Typische Anwendungsfälle sind Fehlerbehandlungsroutinen, die bei bestimmten Fehlercodes (z. B. Unique-Constraint-Verletzungen, Verbindungsfehler) unterschiedlich reagieren sollen. Der zurückgegebene Code entspricht dem Firebird/InterBase-internen SQL-Code oder ISC-Fehlercode.
Hinweis: fbird_errcode() ist ein Alias für ibase_errcode(). Beide Funktionen sind seit PHP 8.0 nicht mehr im PHP-Kern enthalten und wurden in die PECL-Erweiterung ibase ausgelagert.
Rückgabewert
int zurück. Ist kein Fehler aufgetreten, wird false zurückgegeben.Beispiele
Fehlercode nach fehlgeschlagener Datenbankoperation auswerten
<?php
$dbh = fbird_connect('localhost:/pfad/zur/datenbank.fdb', 'sysdba', 'masterkey');
$result = fbird_query($dbh, 'INSERT INTO users (id, name) VALUES (1, \'Max\')'); // id=1 existiert bereits
if ($result === false) {
$errcode = fbird_errcode();
$errmsg = fbird_errmsg();
if ($errcode === -803) {
echo "Fehler: Datensatz mit dieser ID existiert bereits (Unique-Verletzung).\n";
} else {
echo "Datenbankfehler [{$errcode}]: {$errmsg}\n";
}
}
fbird_close($dbh);
?>
Fehlercode und Fehlermeldung gemeinsam loggen
<?php
function firebird_check_error(string $context): void
{
$code = fbird_errcode();
if ($code !== false) {
$msg = fbird_errmsg();
error_log("[Firebird-Fehler] Kontext: {$context} | Code: {$code} | Meldung: {$msg}");
}
}
$dbh = fbird_connect('localhost:/data/shop.fdb', 'sysdba', 'masterkey');
$result = fbird_query($dbh, 'SELECT * FROM nicht_vorhandene_tabelle');
if ($result === false) {
firebird_check_error('Produktabfrage');
echo "Abfrage fehlgeschlagen. Details wurden geloggt.\n";
}
fbird_close($dbh);
?>
// Wichtig · Fallstricke
Deprecation / Entfernung: Die fbird_*- und ibase_*-Funktionen wurden mit PHP 8.0 aus dem PHP-Kern entfernt. Für PHP 8.0 und höher muss die PECL-Erweiterung ibase separat installiert und eingebunden werden. Neue Projekte sollten die Verfügbarkeit dieser Erweiterung in der Zielumgebung explizit prüfen.
fbird_errcode() ist ein direkter Alias für ibase_errcode(); beide Funktionen verhalten sich identisch. Der Fehlercode bezieht sich immer auf den zuletzt aufgetretenen Fehler im aktuellen Skriptablauf, unabhängig von der verwendeten Verbindung.