(PHP 5, PECL OCI8 >= 1.1.0)
oci_error — Devuelve el último error encontrado
$resource
] )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.
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
.
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.
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. |
Versión | Descripción |
---|---|
4.3.0 | Se añadieron las entradas offset y sqltext. |
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";
}
?>
Nota:
En versiones de PHP anteriores a la 5.0.0, se debe usar ocierror() en su lugar. El nombre antiguo de la función todavía puede ser utilizado en versiones actuales, sin embargo es obsoleto y no se recomienda.