Please note that, unlike equivalent functions in other DB extensions, skipping the resource argument is not synonym for "just get last error".
(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)
oci_error — Devuelve el último error encontrado
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. |
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";
}
?>
Please note that, unlike equivalent functions in other DB extensions, skipping the resource argument is not synonym for "just get last error".