Please note that, unlike equivalent functions in other DB extensions, skipping the resource argument is not synonym for "just get last error".
(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)
oci_error — Liefert den letzten Fehler
$resource
= ?
) : arrayGibt den zuletzt gefundenen Fehler zurück.
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, gibt oci_error()
false
zurück. Andernfalls gibt oci_error() die
Fehlerinformationen als assoziatives Array zurück.
Schlüssel | Typ | Beschreibung |
---|---|---|
code |
int | Die Oracle-Fehlernummer. |
message |
string | Die Oracle-Fehlermeldung. |
offset |
int |
Die Byteposition des Fehlers in einer SQL-Anweisung. Gab es keine
Anweisung, dann ist dies 0 .
|
sqltext |
string | Der Text der SQL-Anweisung. Gab es keine Anweisung, 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 problematischen 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";
}
?>
Please note that, unlike equivalent functions in other DB extensions, skipping the resource argument is not synonym for "just get last error".