|  | Posted by Jan Stenberg on 06/28/05 14:00 
I have a situation where I open a database connection in main script. Then I start a transaction, have some queries, include an another php
 file within some queries and then commiting queries in the main script.
 All queries in the main script gets committed but those in the included
 file doesn't. Why's that? Adding COMMIT query to the included file
 doesn't work either. Here are an test code which clears what I mean:
 
 the main file (test.php):
 <?PHP
 $db = mysql_connect ("localhost", "dbuser", "dbpass") or die ("Database
 connection error!");
 mysql_select_db("databasename") or die ("Database selection error!");
 
 mysql_query("START TRANSACTION", $db);
 mysql_query("INSERT INTO news VALUES (NOW(),'author','message from main
 script')", $db);
 
 include "test2.php";
 
 mysql_query("COMMIT",$db);
 mysql_close($db);
 ?>
 
 and the included one (test2.php):
 <?PHP
 mysql_query("INSERT INTO news VALUES (NOW(),'author2','message from the
 included script')", $db);
 ?>
 
 
 So, this script runs fine, but there is just one row inserted to db (the
 one from the main script (test.php)). var_dump of $db in the included
 script tells as it should: resource(2) of type (mysql link)
 
 Tables are InnoDB type and START TRANSACTION and COMMIT both returns
 true (1). I also made some error handlers but those were not trapped either.
 
 Does not make any sence for me. I hope someone can help to solve this.
 
 JS
  Navigation: [Reply to this message] |