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 add a note

User Contributed Notes 1 note

up
-19
alvaro at demogracia dot com
10 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