oci_error

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_errorLiefert den letzten Fehler

Beschreibung

oci_error ([ resource $resource ] ) : array

Liefert den zuletzt gefundenen Fehler.

Die Funktion sollte unmittelbar nach dem Auftreten eines Fehlers aufgerufen werden. Fehler werden durch eine erfolgreiche Anweisung gelöscht.

Parameter-Liste

resource

Bei den meisten Fehlern ist resource die Ressourcen-Kennung, die an den fehlschlagenden Funktionsaufruf übergeben wurde. Bei Verbindungsfehlern mit oci_connect(), oci_new_connect() oder oci_pconnect() sollte resource nicht angegeben werden.

Rückgabewerte

Wenn kein Fehler gefunden wurde, liefert oci_error() FALSE zurück. Andernfalls gibt oci_error() die Fehlerinformationen als assoziatives Array.

oci_error() Array-Beschreibung
Schlüssel Typ Beschreibung
code integer Die Oracle Fehlernummer.
message string Die Oracle Fehlermeldung.
offset integer Die Byteposition des Fehlers in einer SQL-Anweisung. Gab es kein Statement, dann ist dies gleich 0.
sqltext string Der Text der SQL-Anweisung. Gab es kein Statement, dann ist dies eine leere Zeichenkette.

Beispiele

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

<?php
$conn 
oci_connect("hr""welcome""localhost/XE");
if (!
$conn) {
    
$e oci_error();   // bei oci_connect-Fehlern keine Kennung übergeben
    
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>

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

<?php
$stid 
oci_parse($conn"select ' from dual");  // fehlerhaftes Anführungszeichen
if (!$stid) {
    
$e oci_error($conn);  // bei oci_parse-Fehlern Verbindungskennung übergeben
    
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>

Beispiel #3 Anzeigen der Oracle-Fehlermeldung, der problematische Anweisung und der Position des Problems nach einem Ausführungsfehler

<?php
$stid 
oci_parse($conn"select does_not_exist from dual");
$r oci_execute($stid);
if (!
$r) {
    
$e oci_error($stid); // bei oci_execute-Fehlern die Anweisungskennung übergeben
    
print htmlentities($e['message']);
    print 
"\n<pre>\n";
    print 
htmlentities($e['sqltext']);
    
printf("\n%".($e['offset']+1)."s""^");
    print  
"\n</pre>\n";
}
?>