CascadiaPHP 2024

oci_error

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

oci_errorDevuelve el último error encontrado

Descripción

oci_error(resource $resource = ?): array

Devuelve el último error encontrado.

La función debería ser invocada inmediatamente después de que ocurra un error. Los errores son limpiados por una sentencia que tenga éxito.

Parámetros

resource

Para la mayoría de errores, resource es el gestor de recurso que fue pasado a la función que falló. Para errores de conexión con oci_connect(), oci_new_connect() o oci_pconnect(), no pase resource.

Valores devueltos

Si no se encontró ningún error, oci_error() devuelve false. De lo contrario, oci_error() devuelve la información del error como un array asociativo.

Descripción del array de oci_error()
Clave del array Tipo Descripción
code integer El número de error de Oracle.
message string El texto del error de Oracle.
offset integer La posición del byte de un error en una sentencia SQL. Si no existiera tal sentencia, este valor será 0
sqltext string El texto de la sentencia SQL. Si no existiera tal sentencia, este valor será una cadena vacía.

Ejemplos

Ejemplo #1 Mostrar el 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 errores de oci_connect errors, no pase un gestor
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>

Ejemplo #2 Mostrar el mensaje de error de Oracle después de un error de análisis

<?php
$stid
= oci_parse($conn, "select ' from dual"); // observe la comilla simple dispareja
if (!$stid) {
$e = oci_error($conn); // Para errores de oci_parse, pase el gestor de conexión
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>

Ejemplo #3 Mostrar el mensaje de error de Oracle, la sentencia problemática, y la posición del problema en un error de ejecución

<?php
$stid
= oci_parse($conn, "select does_not_exist from dual");
$r = oci_execute($stid);
if (!
$r) {
$e = oci_error($stid); // Para errores de oci_execute, pase el gestor de sentencia
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