Je souhaite savoir si il est possible de commencer une transaction (START TRANSACTION ) sur une table InnoDB sur une page et la finir (COMMIT) sur une seconde page.
Pour illustrer mon probleme voici un exemple :
Page TestSql1.php :
<?php
// on se connecte à MySQL
$db = mysql_pconnect('localhost');
echo mysql_thread_id($db);
// on séléctionne la base
mysql_select_db('basetest',$db);
mysql_query("CREATE TABLE IF NOT EXISTS T_TEST (CLE INTEGER NOT NULL AUTO_INCREMENT, VALEUR INTEGER, PRIMARY KEY(CLE)) type=InnoDB");
mysql_query("START TRANSACTION");
mysql_query("INSERT INTO t_test VALUES(1, 1)");
echo "<FORM action=\"TestSql2.php\" method=\"POST\" name=\"FormTest\">\n";
echo " <INPUT TYPE=\"SUBMIT\" name=\"Commit\" value=\"Continuer\">\n";
echo "</FORM>\n";
?>
Page TestSql2.php :
<?php
$db = mysql_pconnect('localhost');
echo mysql_thread_id($db);
// on séléctionne la base
mysql_select_db('basetest',$db);
mysql_query("COMMIT");
?>
Dans l'exemple evoque, la transaction est abandonnee a la fin de l'execution
du thread de la premiere page. Il est donc impossible de la reprendre...
Merci d'avance.
Laurent