Start · Sprachen · PHP · Referenz · cubrid_error

cubrid_error

Funktion

Gibt die Fehlermeldung des zuletzt aufgetretenen CUBRID-Fehlers als Zeichenkette zurück.

seit PHP 8.3.1 Kategorie: db

Signatur

cubrid_error(resource $conn_identifier = null): string

Beschreibung

cubrid_error() liefert die textuelle Fehlermeldung des zuletzt aufgetretenen Fehlers bei einer CUBRID-Datenbankverbindung. Die Funktion ist nützlich, um nach fehlgeschlagenen Datenbankoperationen aussagekräftige Fehlermeldungen für Debugging-Zwecke oder Logging auszugeben.

Wird ein Verbindungs-Handle übergeben, bezieht sich die Fehlermeldung auf genau diese Verbindung. Ohne Argument wird die zuletzt geöffnete Verbindung herangezogen. Die Funktion wird typischerweise zusammen mit cubrid_errno() verwendet, um sowohl den Fehlercode als auch die zugehörige Meldung zu erhalten.

Beachte, dass cubrid_error() nur für ältere, verbindungsbasierte CUBRID-Funktionen vorgesehen ist. In modernen CUBRID-Anwendungen sollte stattdessen auf cubrid_error_msg() oder den OCI-ähnlichen Stil mit cubrid_get_last_error() zurückgegriffen werden.

Parameter

Name Typ Default Beschreibung
$conn_identifier resource null Ein CUBRID-Verbindungshandle, das zuvor von cubrid_connect() zurückgegeben wurde. Wird kein Handle angegeben, wird die zuletzt geöffnete Verbindung verwendet.

Rückgabewert

Typ
string
Beschreibung
Gibt die Fehlermeldung des zuletzt aufgetretenen CUBRID-Fehlers als Zeichenkette zurück. Ist kein Fehler aufgetreten, wird eine leere Zeichenkette zurückgegeben.

Beispiele

Fehlermeldung nach fehlgeschlagenem Query ausgeben

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

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

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

if (!$result) {
    $fehlercode    = cubrid_errno($conn);
    $fehlermeldung = cubrid_error($conn);
    echo "Fehler [$fehlercode]: $fehlermeldung" . PHP_EOL;
}

cubrid_disconnect($conn);
Fehler [-493]: Semantic: Unknown class nicht_vorhandene_tabelle.

Fehlerbehandlung mit Logging

<?php
function cubrid_query_safe(resource $conn, string $sql): mixed
{
    $result = cubrid_execute($conn, $sql);

    if ($result === false) {
        $msg = sprintf(
            '[CUBRID] Fehler %d: %s | SQL: %s',
            cubrid_errno($conn),
            cubrid_error($conn),
            $sql
        );
        error_log($msg);
        return false;
    }

    return $result;
}

$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$result = cubrid_query_safe($conn, 'SELECT * FROM athlete LIMIT 5');

if ($result) {
    while ($row = cubrid_fetch_assoc($result)) {
        echo $row['name'] . PHP_EOL;
    }
    cubrid_close_request($result);
}

cubrid_disconnect($conn);

// Wichtig · Fallstricke

Sicherheitshinweis: Fehlermeldungen sollten niemals direkt an den Endnutzer ausgegeben werden, da sie interne Datenbankinformationen wie Tabellennamen oder Strukturen preisgeben können. Verwende cubrid_error() ausschließlich für internes Logging oder Debugging.

Die Funktion gehört zur älteren CUBRID-API. Neuere Projekte sollten die OO-Schnittstelle oder vorbereitete Anweisungen (Prepared Statements) nutzen, um Fehler konsistenter zu behandeln und SQL-Injection zu vermeiden.