Start · Sprachen · PHP · Referenz · cubrid_errno

cubrid_errno

Funktion

Gibt den numerischen Fehlercode der zuletzt fehlgeschlagenen CUBRID-Datenbankoperation zurück.

seit PHP 8.3.1 Kategorie: db

Signatur

cubrid_errno(resource $conn_identifier = null): int

Beschreibung

cubrid_errno() liefert den internen CUBRID-Fehlercode (als ganze Zahl) der letzten Datenbankoperation auf der angegebenen Verbindung. Ist kein Fehler aufgetreten, wird 0 zurückgegeben. Die Funktion entspricht konzeptionell mysql_errno() aus der MySQL-Extension.

Im Fehlerfall kann der numerische Code genutzt werden, um zwischen verschiedenen Fehlertypen (z. B. Verbindungsfehler, SQL-Syntaxfehler, Constraint-Verletzungen) zu unterscheiden und gezielt darauf zu reagieren. Den zugehörigen Fehlertext liefert die Schwester-Funktion cubrid_error().

Der optionale Parameter $conn_identifier gibt an, auf welche Verbindungsressource sich die Fehlerabfrage beziehen soll. Wird er weggelassen, bezieht sich die Funktion auf die zuletzt geöffnete CUBRID-Verbindung.

Typischer Einsatz ist eine Fehlerbehandlung unmittelbar nach einer CUBRID-Operation, z. B. nach cubrid_execute() oder cubrid_query(), um detailliert auf Datenbankfehler reagieren zu können.

Parameter

Name Typ Default Beschreibung
$conn_identifier resource null Die CUBRID-Verbindungsressource, deren Fehlercode abgerufen werden soll. Wird der Parameter weggelassen, wird die zuletzt geöffnete Verbindung verwendet.

Rückgabewert

Typ
int
Beschreibung
Gibt den numerischen CUBRID-Fehlercode der letzten Operation zurück. Bei Erfolg (kein Fehler) wird 0 zurückgegeben.

Beispiele

Fehlerbehandlung nach einer fehlgeschlagenen Abfrage

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');

if (!$conn) {
    die('Verbindung fehlgeschlagen: ' . cubrid_errno());
}

$result = cubrid_execute($conn, 'SELECT * FROM nicht_vorhandene_tabelle');

if (!$result) {
    $errno  = cubrid_errno($conn);
    $errmsg = cubrid_error($conn);
    echo "Fehlercode: $errno" . PHP_EOL;
    echo "Fehlermeldung: $errmsg" . PHP_EOL;
} else {
    // Ergebnis verarbeiten
    cubrid_close_request($result);
}

cubrid_disconnect($conn);
Fehlercode: -493 Fehlermeldung: Semantic: class nicht_vorhandene_tabelle does not exist.

Gezieltes Reagieren auf bestimmte Fehlercodes

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');

$sql = "INSERT INTO produkte (id, name) VALUES (1, 'Testprodukt')";
$result = cubrid_execute($conn, $sql);

if (!$result) {
    $errno = cubrid_errno($conn);
    switch ($errno) {
        case -670:
            echo 'Primärschlüssel-Konflikt: Datensatz existiert bereits.' . PHP_EOL;
            break;
        case -61:
            echo 'Keine Verbindung zur Datenbank.' . PHP_EOL;
            break;
        default:
            echo "Unbekannter CUBRID-Fehler (Code: $errno): " . cubrid_error($conn) . PHP_EOL;
    }
}

cubrid_disconnect($conn);
Primärschlüssel-Konflikt: Datensatz existiert bereits.

// Wichtig · Fallstricke

Hinweis zur Fehlerauswertung: CUBRID-Fehlercodes sind in der Regel negative Ganzzahlen. Eine vollständige Liste der CUBRID-Fehlercodes ist in der offiziellen CUBRID-Dokumentation zu finden, da PHP selbst keine Konstanten für diese Codes definiert.

Veraltete Extension: Die CUBRID-PHP-Extension wird in modernen PHP-Versionen (ab PHP 8.x) nur noch eingeschränkt gepflegt. Prüfen Sie vor dem Einsatz in neuen Projekten die Kompatibilität und Verfügbarkeit der Extension auf Ihrem System.

Reihenfolge beachten: cubrid_errno() muss unmittelbar nach der fehlgeschlagenen Operation aufgerufen werden, da der interne Fehlerstatus bei der nächsten Datenbankoperation überschrieben wird.