oci_error

(PHP 5, PECL OCI8 >= 1.1.0)

oci_errorLiefert 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

Beispiel #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']);
}

Beispiel #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']);
}

Beispiel #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.

add a note add a note

User Contributed Notes 1 note

up
1
alvaro at demogracia dot com
3 months ago
Please note that, unlike equivalent functions in other DB extensions, skipping the resource argument is not synonym for "just get last error".
To Top