ID: 13986 User updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] Old Status: Feedback Status: Open Bug Type: Class/Object related Operating System: Win2k / Linux + Oracle8i+Apache Old PHP Version: 4.0.4pl1 PHP Version: 4.0.6 New Comment:
I have just tried PHP 4.0.6. It has the same problem. Previous Comments: ------------------------------------------------------------------------ [2001-11-09 09:41:58] [EMAIL PROTECTED] Have you tried PHP 4.0.6 ? ------------------------------------------------------------------------ [2001-11-08 01:47:35] [EMAIL PROTECTED] I am using a database class to manipulate data. I found that when the program is terminated in the class, the transaction will be committed, even I've set the mode to OCI_DEFAULT. The same case occured in both Win2k and Linux with Oracle and Apache. //////////////////////////////////////////////// // Schema //////////////////////////////////////////////// /* create table test ( id varchar2(5) not null, name varchar2(10), primary key (id) ); //////////////////////////////////////////////// // Source Code /////////////////////////////////////////////// class Database { var $conn, $stmt, $row_data; function Database() { $DB_SERVER = ""; $DATABASE = ""; $DB_USER = "test"; $DB_PASSWORD = "test"; putenv($DATABASE); $this->conn = OCILogon($DB_USER, $DB_PASSWORD, $DB_SERVER); if ($this->conn == false) { die("Cannot connect to server"); } } function Query($sql) { $this->stmt = OCIParse($this->conn, $sql); if ($this->stmt == false) { die("Statement Error"); } if (OCIExecute($this->stmt, OCI_DEFAULT) == false) { die("Cannot Execute Statment"); } } function Commit() { OCICommit($this->conn); } function terminate() { die(" Not OK :( "); } } $db = new Database(); $sql = "insert into test (id, name) values ('1', '1')"; $db->Query($sql); $db->terminate(); // This will commit the transaction, // even the program is terminated. die(" OK :) "); // If the program is terminated here, // the transaction is rollbacked. $db->Commit(); ------------------------------------------------------------------------ [2001-11-08 01:42:41] [EMAIL PROTECTED] I am using a database class to manipulate data. I found that when the problem is terminated in the class, the transaction will be committed, even I've set the mode to OCI_DEFAULT. The same case occured in both Win2k and Linux with Oracle and Apache. //////////////////////////////////////////////// // Schema //////////////////////////////////////////////// /* create table test ( id varchar2(5) not null, name varchar2(10), primary key (id) ); //////////////////////////////////////////////// // Source Code /////////////////////////////////////////////// class Database { var $conn, $stmt, $row_data; function Database() { $DB_SERVER = ""; $DATABASE = ""; $DB_USER = "test"; $DB_PASSWORD = "test"; putenv($DATABASE); $this->conn = OCILogon($DB_USER, $DB_PASSWORD, $DB_SERVER); if ($this->conn == false) { die("Cannot connect to server"); } } function Query($sql) { $this->stmt = OCIParse($this->conn, $sql); if ($this->stmt == false) { die("Statement Error"); } if (OCIExecute($this->stmt, OCI_DEFAULT) == false) { die("Cannot Execute Statment"); } } function Commit() { OCICommit($this->conn); } function terminate() { die(" Not OK :( "); } } $db = new Database(); $sql = "insert into test (id, name) values ('1', '1')"; $db->Query($sql); $db->terminate(); // This will commit the transaction, // even the program is terminated. die(" OK :) "); // If the program is terminated here, // the transaction is rollbacked. $db->Commit(); ------------------------------------------------------------------------ Edit this bug report at http://bugs.php.net/?id=13986&edit=1 -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]