Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

oci_error(3) [php man page]

OCI_ERROR(3)															      OCI_ERROR(3)

oci_error - Returns the last error found

SYNOPSIS
array oci_error ([resource $resource]) DESCRIPTION
Returns the last error found. The function should be called immediately after an error occurs. Errors are cleared by a successful statement. PARAMETERS
o $resource - For most errors, $resource is the resource handle that was passed to the failing function call. For connection errors with oci_connect(3), oci_new_connect(3) or oci_pconnect(3) do not pass $resource. RETURN VALUES
If no error is found, oci_error(3) returns FALSE. Otherwise, oci_error(3) returns the error information as an associative array. oci_error(3) Array Description +----------+--------------------------------------+---+ |Array key | | | | | | | | | Type | | | | | | | | Description | | | | | | +----------+--------------------------------------+---+ | | | | | code | | | | | | | | | | | | | integer | | | | | | | | The Oracle error number. | | | | | | | | | | | message | | | | | | | | | | | | | string | | | | | | | | The Oracle error text. | | | | | | | | | | | offset | | | | | | | | | | | | | integer | | | | | | | | 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. | | | | | | +----------+--------------------------------------+---+ EXAMPLES
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 " <pre> "; print htmlentities($e['sqltext']); printf(" %".($e['offset']+1)."s", "^"); print " </pre> "; } ?> PHP Documentation Group OCI_ERROR(3)

Check Out this Related Man Page

OCI_ROLLBACK(3) 														   OCI_ROLLBACK(3)

oci_rollback - Rolls back the outstanding database transaction

SYNOPSIS
bool oci_rollback (resource $connection) DESCRIPTION
Reverts all uncommitted changes for the Oracle $connection and ends the transaction. It releases all locks held. All Oracle SAVEPOINTS are erased. A transaction begins when the first SQL statement that changes data is executed with oci_execute(3) using the OCI_NO_AUTO_COMMIT flag. Further data changes made by other statements become part of the same transaction. Data changes made in a transaction are temporary until the transaction is committed or rolled back. Other users of the database will not see the changes until they are committed. When inserting or updating data, using transactions is recommended for relational data consistency and for performance reasons. PARAMETERS
o $connection - An Oracle connection identifier, returned by oci_connect(3), oci_pconnect(3) or oci_new_connect(3). RETURN VALUES
Returns TRUE on success or FALSE on failure. EXAMPLES
Example #1 oci_rollback(3) example <?php // Insert into several tables, rolling back the changes if an error occurs $conn = oci_connect('hr', 'welcome', 'localhost/XE'); $stid = oci_parse($conn, "INSERT INTO mysalary (id, name) VALUES (1, 'Chris')"); // The OCI_NO_AUTO_COMMIT flag tells Oracle not to commit the INSERT immediately // Use OCI_DEFAULT as the flag for PHP <= 5.3.1. The two flags are equivalent $r = oci_execute($stid, OCI_NO_AUTO_COMMIT); if (!$r) { $e = oci_error($stid); trigger_error(htmlentities($e['message']), E_USER_ERROR); } $stid = oci_parse($conn, 'INSERT INTO myschedule (startday) VALUES (12)'); $r = oci_execute($stid, OCI_NO_AUTO_COMMIT); if (!$r) { $e = oci_error($stid); oci_rollback($conn); // rollback changes to both tables trigger_error(htmlentities($e['message']), E_USER_ERROR); } // Commit the changes to both tables $r = oci_commit($conn); if (!r) { $e = oci_error($conn); trigger_error(htmlentities($e['message']), E_USER_ERROR); } ?> Example #2 Rolling back to a SAVEPOINT example <?php $stid = oci_parse($conn, 'UPDATE mytab SET id = 1111'); oci_execute($stid, OCI_NO_AUTO_COMMIT); // Create the savepoint $stid = oci_parse($conn, 'SAVEPOINT mysavepoint'); oci_execute($stid, OCI_NO_AUTO_COMMIT); $stid = oci_parse($conn, 'UPDATE mytab SET id = 2222'); oci_execute($stid, OCI_NO_AUTO_COMMIT); // Use an explicit SQL statement to rollback to the savepoint $stid = oci_parse($conn, 'ROLLBACK TO SAVEPOINT mysavepoint'); oci_execute($stid, OCI_NO_AUTO_COMMIT); oci_commit($conn); // mytab now has id of 1111 ?> NOTES
Note Transactions are automatically rolled back when you close the connection, or when the script ends, whichever is soonest. You need to explicitly call oci_commit(3) to commit the transaction. Any call to oci_execute(3) that uses OCI_COMMIT_ON_SUCCESS mode explicitly or by default will commit any previous uncommitted transaction. Any Oracle DDL statement such as CREATE or DROP will automatically commit any uncommitted transaction. SEE ALSO
oci_commit(3), oci_execute(3). PHP Documentation Group OCI_ROLLBACK(3)
Man Page