Start · Sprachen · PHP · Referenz · db2_conn_errormsg

db2_conn_errormsg

Funktion

Liefert die letzte Fehlermeldung und den SQLCODE, die bei einem Verbindungsversuch mit einer IBM DB2-, Cloudscape- oder Apache Derby-Datenbank aufgetreten sind.

seit PHP 5.1.0 Kategorie: db

Signatur

db2_conn_errormsg(resource $connection = null): string

Beschreibung

db2_conn_errormsg() gibt eine lesbare Fehlermeldung zurück, die den zuletzt aufgetretenen Verbindungsfehler beschreibt. Die Meldung enthält in der Regel den SQLCODE sowie eine textuelle Beschreibung des Problems, was die Diagnose von Verbindungsproblemen erheblich erleichtert.

Die Funktion kann entweder ohne Argument aufgerufen werden, um den Fehler des zuletzt fehlgeschlagenen db2_connect()- oder db2_pconnect()-Versuchs abzurufen, oder mit einem bestehenden Verbindungs-Resource-Handle, um Fehler dieser spezifischen Verbindung abzufragen.

Sie ist das Gegenstück zu db2_conn_error(), das nur den kurzen SQLSTATE-Code zurückgibt. db2_conn_errormsg() liefert hingegen eine vollständige, für den Endnutzer oder Entwickler verständlichere Fehlermeldung. Typischerweise wird sie in Fehlerbehandlungsroutinen nach einem gescheiterten Verbindungsaufbau eingesetzt.

  • Ohne Argument: gibt den Fehler des letzten fehlgeschlagenen Verbindungsversuchs zurück.
  • Mit Resource: gibt den Fehler der angegebenen Verbindung zurück.

Parameter

Name Typ Default Beschreibung
$connection resource null Ein gültiges DB2-Verbindungs-Handle, wie es von db2_connect() oder db2_pconnect() zurückgegeben wird. Wird kein Argument übergeben, wird die Fehlermeldung des zuletzt fehlgeschlagenen Verbindungsversuchs zurückgegeben.

Rückgabewert

Typ
string
Beschreibung
Gibt einen String zurück, der die Fehlermeldung und den SQLCODE des letzten Verbindungsfehlers enthält. Ist kein Fehler aufgetreten, wird ein leerer String zurückgegeben.

Beispiele

Fehlermeldung nach gescheitertem Verbindungsaufbau ausgeben

<?php
$conn = db2_connect('INVALID_DSN', 'user', 'password');

if (!$conn) {
    $errorMsg = db2_conn_errormsg();
    echo "Verbindung fehlgeschlagen: " . $errorMsg;
} else {
    echo "Verbindung erfolgreich hergestellt.";
    db2_close($conn);
}
Verbindung fehlgeschlagen: [IBM][CLI Driver] SQL1042C An unexpected system error occurred. SQLSTATE=58004

Fehlermeldung für eine spezifische Verbindungsressource abrufen

<?php
$dsn   = 'DATABASE=testdb;HOSTNAME=localhost;PORT=50000;PROTOCOL=TCPIP;';
$user  = 'dbuser';
$pass  = 'wrongpassword';

$conn = db2_connect($dsn, $user, $pass);

if ($conn === false) {
    // Kein Handle vorhanden – Fehler ohne Argument abrufen
    echo "Verbindungsfehler (SQLSTATE): " . db2_conn_error() . "\n";
    echo "Verbindungsfehler (Meldung): "  . db2_conn_errormsg() . "\n";
} else {
    // Verbindung besteht, aber wir rufen eventuelle Fehler per Handle ab
    echo "Fehlerstatus der Verbindung: " . db2_conn_errormsg($conn) . "\n";
    db2_close($conn);
}
Verbindungsfehler (SQLSTATE): 28000 Verbindungsfehler (Meldung): [IBM][CLI Driver][DB2] SQL30082N Security processing failed with reason "24" ("USERNAME AND/OR PASSWORD INVALID"). SQLSTATE=28000

// Wichtig · Fallstricke

Sicherheitshinweis: Geben Sie die vollständige Ausgabe von db2_conn_errormsg() niemals direkt an den Endnutzer aus, da die Fehlermeldung sensible Informationen wie Datenbanknamen, Hostnamen oder interne Systemdetails enthalten kann. Loggen Sie Fehler serverseitig und zeigen Sie dem Benutzer nur eine generische Fehlermeldung an.

Die Funktion setzt voraus, dass die ibm_db2-Extension installiert und aktiviert ist (extension=ibm_db2 in der php.ini). Ohne diese Extension ist db2_conn_errormsg() nicht verfügbar.

Im Gegensatz zu db2_stmt_errormsg(), das für Fehler bei der Ausführung von SQL-Statements zuständig ist, bezieht sich db2_conn_errormsg() ausschließlich auf Verbindungsfehler.