PHP 5.6.0 released

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
0
alvaro at demogracia dot com
25 days 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