PHP 8.3.4 Released!

oci_error

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

oci_errorLiefert den letzten Fehler

Beschreibung

oci_error(?resource $connection_or_statement = null): array|false

Gibt 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.

Parameter-Liste

connection_or_statement

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

Rückgabewerte

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

Beschreibung des oci_error()-Arrays
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.

Changelog

Version Beschreibung
8.0.0, PECL OCI8 3.0.0 connection_or_statement ist jetzt nullable (akzeptiert den null-Wert).

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 Parser-Fehler 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";
}
?>

add a note

User Contributed Notes 1 note

up
-31
alvaro at demogracia dot com
9 years 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