Re: oci_commit always returns true even when the transaction fails.
| From: | Chris | Date: | Tue, 16 Mar 2010 21:39:28 +0000 |
| Subject: | Re: oci_commit always returns true even when the transaction fails. | ||
| References: | 1 | Groups: | php.db |
| Request: | Send a blank email to php-db+get-46961@lists.php.net to get a copy of this message | ||
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/