Re: [PHP-DB] oci_commit always returns true even when the transaction fails.

[email protected] (Christopher Jones)
Newsgroups php.db
Message-ID <[email protected]>

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: [email protected]
Tel:  +1 650 506 8630
Blog:  http://blogs.oracle.com/opal/
Free PHP Book: http://tinyurl.com/ugpomhome
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.