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

Reply via email to