(PHP 5, PECL OCI8 >= 1.1.0)
oci_error — Liefert den letzten Fehler
$source
] )Liefert den zuletzt gefundenen Fehler.
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.
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.
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. |
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>";
}
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.