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/