(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)
oci_error — Liefert den letzten Fehler
$resource
] ) : arrayLiefert den zuletzt gefundenen Fehler.
Die Funktion sollte unmittelbar nach dem Auftreten eines Fehlers aufgerufen werden. Fehler werden durch eine erfolgreiche Anweisung gelöscht.
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.
Wenn kein Fehler gefunden wurde, liefert
oci_error() FALSE
zurück. Andernfalls gibt
oci_error() die Fehlerinformationen als assoziatives Array.
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. |
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";
}
?>