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/
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php