Forum und email

oci_error

(PHP 5, PECL oci8:1.1-1.2.4)

oci_error — Liefert den letzten Fehler

Beschreibung

array oci_error ([ resource $source ] )

Liefert den zuletzt gefundenen Fehler.

Parameter Liste

source

Der Parameter ist, bei den meisten Fehlern, der am besten geeignete Ressourcen-Handler. Bei Verbindungsfehlern mit oci_connect(), oci_new_connect() oder oci_pconnect() keinen Parameter mitgeben.

Rückgabewerte

Wenn kein Fehler gefunden wurde, liefert oci_error() FALSE zurück. Ein Fehler wird von oci_error() als assoziatives Array zurückgegeben. In diesem Array enthält code den Oracle-Errorcode und message den Oracle-Fehlertext.

ChangeLog

Version Beschreibung
4.3 Im Rückgabe-Array sind nun offset und sqltext enthalten, die die Fehlerstelle anzeigen und den ursprünglichen SQL-Text, der den Fehler verusacht hat, beinhalten.

Beispiele

Example#1 Zeigt die Oracle-Fehlermeldung nach einem Verbindungsfehler an

$conn = @oci_connect("scott", "tiger", "mydb");
if (!$conn) {
  $e = oci_error();   // Bei oci_connect-Fehler ohne Handler
  echo htmlentities($e['message']);
}

Example#2 Zeigt die Oracle-Fehlermeldung nach einem Parse-Error an

$stmt = @oci_parse($conn, "select ' from dual");  // Fehlerhafte Quottierung
if (!$stmt) {
  $e = oci_error($conn);  // Bei oci_parse-Fehler mit Verbindungs-Handler
  echo htmlentities($e['message']);
}

Example#3 Zeigt die Oracle-Fehlermeldung und das problematische Statement nach einem Ausführungsfehler

$r = oci_execute($stmt);
if (!$r) {
  $e = oci_error($stmt); // Bei oci_execute-Fehler mit Statement-Handle
  echo htmlentities($e['message']);
  echo "<pre>";
  echo htmlentities($e['sqltext']);
  printf("\n%".($e['offset']+1)."s", "^");
  echo "</pre>";
}

Anmerkungen

Hinweis: In der PHP-Versionen vor 5.0.0 muss man ocierror() benutzen. Den Namen kann man immer noch nutzen. Er wurde als Alias für oci_error() für die Abwärtskompatibilität erhalten. Dieses ist allerdings veraltet und wird nicht empfohlen.