array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'en', ), 'this' => array ( 0 => 'function.oci-error.php', 1 => 'oci_error', ), 'up' => array ( 0 => 'ref.oci8.php', 1 => 'OCI8 Functions', ), 'prev' => array ( 0 => 'function.oci-define-by-name.php', 1 => 'oci_define_by_name', ), 'next' => array ( 0 => 'function.oci-execute.php', 1 => 'oci_execute', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'en', 'path' => 'reference/oci8/functions/oci-error.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)
oci_error — Returns the last error found
Returns the last error found.
The function should be called immediately after an error occurs. Errors are cleared by a successful statement.
connection_or_statement
For most errors, connection_or_statement
is the
resource handle that was passed to the failing function call.
For connection errors with oci_connect(),
oci_new_connect() or
oci_pconnect() null
should be passed.
If no error is found, oci_error() returns
false
. Otherwise, oci_error() returns the
error information as an associative array.
Array key | Type | Description |
---|---|---|
code |
int | The Oracle error number. |
message |
string | The Oracle error text. |
offset |
int |
The byte position of an error in the SQL statement. If there
was no statement, this is 0
|
sqltext |
string | The SQL statement text. If there was no statement, this is an empty string. |
Version | Description |
---|---|
8.0.0, PECL OCI8 3.0.0 |
connection_or_statement is now nullable.
|
Example #1 Displaying the Oracle error message after a connection error
<?php
$conn = oci_connect("hr", "welcome", "localhost/XE");
if (!$conn) {
$e = oci_error(); // For oci_connect errors do not pass a handle
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>
Example #2 Displaying the Oracle error message after a parsing error
<?php
$stid = oci_parse($conn, "select ' from dual"); // note mismatched quote
if (!$stid) {
$e = oci_error($conn); // For oci_parse errors pass the connection handle
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>
Example #3 Displaying the Oracle error message, the problematic statement, and the position of the problem of an execution error
<?php
$stid = oci_parse($conn, "select does_not_exist from dual");
$r = oci_execute($stid);
if (!$r) {
$e = oci_error($stid); // For oci_execute errors pass the statement handle
print htmlentities($e['message']);
print "\n<pre>\n";
print htmlentities($e['sqltext']);
printf("\n%".($e['offset']+1)."s", "^");
print "\n</pre>\n";
}
?>