Signatur
Beschreibung
cubrid_error_code() liefert den internen CUBRID-Fehlercode, der beim zuletzt ausgeführten CUBRID-Funktionsaufruf aufgetreten ist. Diese Funktion ist vergleichbar mit mysql_errno() und ermöglicht eine differenzierte Fehlerbehandlung auf Basis numerischer Codes.
Die Funktion gibt 0 zurück, wenn kein Fehler aufgetreten ist. Bei einem Fehler wird eine negative ganze Zahl zurückgegeben, die dem CUBRID-internen Fehlercode entspricht. Diese Codes sind in der CUBRID-Dokumentation definiert und können zur gezielten Reaktion auf bestimmte Datenbankfehler verwendet werden.
Sinnvoll ist diese Funktion vor allem in Kombination mit cubrid_error_msg(), die die zugehörige Fehlermeldung im Klartext zurückgibt. Gemeinsam erlauben beide Funktionen eine vollständige Diagnose von Datenbankproblemen, etwa bei fehlgeschlagenen Verbindungen, ungültigen Abfragen oder Constraint-Verletzungen.
Zu beachten ist, dass der Fehlercode nach jedem CUBRID-Funktionsaufruf überschrieben wird. Daher sollte cubrid_error_code() unmittelbar nach dem fehlerhaften Aufruf abgerufen werden, bevor weitere CUBRID-Funktionen aufgerufen werden.
Rückgabewert
0 bedeutet kein Fehler; ein negativer Wert entspricht dem CUBRID-internen Fehlercode.Beispiele
Fehlerbehandlung nach fehlgeschlagener Verbindung
<?php
$conn = @cubrid_connect('localhost', 33000, 'nicht_vorhanden', 'dba', '');
if (!$conn) {
$code = cubrid_error_code();
$msg = cubrid_error_msg();
echo "Verbindungsfehler aufgetreten." . PHP_EOL;
echo "Fehlercode: " . $code . PHP_EOL;
echo "Fehlermeldung: " . $msg . PHP_EOL;
} else {
echo "Verbindung erfolgreich." . PHP_EOL;
cubrid_disconnect($conn);
}
Fehlercode nach ungültiger SQL-Abfrage prüfen
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if ($conn) {
$result = @cubrid_execute($conn, 'SELECT * FROM tabelle_existiert_nicht');
if (!$result) {
$code = cubrid_error_code();
$msg = cubrid_error_msg();
// Bestimmten Fehler gezielt behandeln
if ($code === -493) {
echo "Tabelle oder View nicht gefunden." . PHP_EOL;
} else {
echo "Datenbankfehler (Code $code): $msg" . PHP_EOL;
}
}
cubrid_disconnect($conn);
}
// Wichtig · Fallstricke
Reihenfolge beachten: Der Fehlercode wird bei jedem CUBRID-Funktionsaufruf neu gesetzt. Wird nach einem Fehler noch ein weiterer CUBRID-Aufruf durchgeführt (z. B. ein Logging-Aufruf), bevor cubrid_error_code() aufgerufen wird, kann der ursprüngliche Fehlercode verloren gehen.
Fehlercode-Referenz: Die genaue Bedeutung der negativen Fehlercodes ist in der offiziellen CUBRID-Dokumentation nachzuschlagen, da sie sich je nach CUBRID-Version unterscheiden können.
Im Gegensatz zu cubrid_errno(), das verbindungsspezifische Fehler zurückgibt, liefert cubrid_error_code() den globalen letzten Fehlercode unabhängig von einer bestimmten Verbindungsressource.