Re: oci_commit always returns true even when the transaction fails.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





Chris wrote:
Christopher Jones wrote:


Chris wrote:
 > 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);
 >

OCI_NO_AUTO_COMMIT is a recently introduced alias for OCI_DEFAULT, so
the original code is equivalent. This could be made clearer in the
oci_commit documentation, but is explained on
http://www.php.net/manual/en/function.oci-execute.php, which is where
the flag is actually used.

Fair enough, thanks for the clarification :)


No problems.

Chris

--
Email: christopher.jones@xxxxxxxxxx
Tel:  +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/
Free PHP Book: http://tinyurl.com/ugpomhome

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux