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

[email protected] (Chris)
Newsgroups php.db
Message-ID <[email protected]>
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/
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.