ZeYuan Zhang wrote:
Hi there. Why oci_commit function always returns true even when the transaction fails. I just copied the code in the php manual [Example 1636. oci_commit() example], and runned it, the situation is as follows: * The statements do commit at the moment when oci_commit executes. * But some statements are committed to oracle successfully, when some fails. I think it cannot be called a transaction, and I did used OCI_DEFAULT in the oci_execute function. Code: <?php $conn = oci_connect('scott', 'tiger'); $stmt = oci_parse($conn, "INSERT INTO employees (name, surname) VALUES ('Maxim', 'Maletsky')"); oci_execute($stmt, OCI_DEFAULT);
Reading the docs (straight from http://www.php.net/manual/en/function.oci-commit.php).
A transaction begins when the first SQL statement that changes data is executed with oci_execute() using the OCI_NO_AUTO_COMMIT flag.
You need to oci_execute($stmt, OCI_NO_AUTO_COMMIT); -- Postgresql & php tutorials http://www.designmagick.com/ -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php