(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)
oci_error — Devuelve el último error de Oracle
Devuelve el último error de Oracle.
La función debe ser llamada inmediatamente después de que ocurra un error. Los errores son reinicializados después de una consulta exitosa.
connection_or_statement
Para la mayoría de los errores, el argumento connection_or_statement
representa un recurso de conexión. Para los errores de conexión con las funciones
oci_connect(), oci_new_connect() o
oci_pconnect(), null
debe ser pasado.
Si no se encuentra ningún error, oci_error() devuelve
false
. De lo contrario, oci_error() devuelve la información sobre
el error en forma de un array asociativo.
Clave del array | Tipo | Descripción |
---|---|---|
code |
int | El número de error de Oracle. |
message |
string | El texto del error de Oracle. |
offset |
int |
La posición del byte del error en la consulta SQL. Si no hay
consulta, 0 será colocado como valor.
|
sqltext |
string | El texto de la consulta SQL. Si no hay consulta, será una cadena vacía. |
Versión | Descripción |
---|---|
8.0.0, PECL OCI8 3.0.0 |
connection_or_statement ahora es nullable.
|
Ejemplo #1 Ejemplo de visualización de un mensaje de error de Oracle después de un error de conexión
<?php
$conn = oci_connect("hr", "welcome", "localhost/XE");
if (!$conn) {
$e = oci_error(); // Para los errores oci_connect, no se pasa un manejador de conexión
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>
Ejemplo #2 Ejemplo de visualización de un mensaje de error de Oracle después de un error de análisis
<?php
$stid = oci_parse($conn, "select ' from dual"); // Note el error con las comillas
if (!$stid) {
$e = oci_error($conn); // Para los errores oci_parse, se pasa el manejador de conexión
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>
Ejemplo #3 Ejemplo de visualización de un mensaje de error de Oracle después de un error de ejecución encontrado en una consulta SQL
<?php
$stid = oci_parse($conn, "select does_not_exist from dual");
$r = oci_execute($stid);
if (!$r) {
$e = oci_error($stid); // Para los errores oci_execute, se pasa el manejador de conexión
print htmlentities($e['message']);
print "\n<pre>\n";
print htmlentities($e['sqltext']);
printf("\n%".($e['offset']+1)."s", "^");
print "\n</pre>\n";
}
?>