:http://www.weberdev.com/ViewArticle/Using-Transactions-In-MySQL-Part-1
」...あなたが取引を開始しますが、COMMITまたはROLLBACKを発行する前にセッションを終了した場合、MySQLははないは自動COMMITを実行しないことに注意することは興味深いことです代わりに、ROLLBACKを発行します。 "
これを確認するためにいくつかのテストを行いましたが、それぞれのシナリオの結果がここにあります。 (注:ページの終了をせずにCOMMIT、自動的にMySQLのロールバック):
mysql_query("START TRANSACTION");
mysql_query("INSERT INTO log SET temp = 'test'");
exit("Exit\n"); // Auto rollback;
die("Die\n"); // Auto rollback;
throw new Exception("Exception\n"); // Auto rollback;
try {
throw new Exception("Exception\n");
} catch(Exception $e) {
echo "Caught\n"; // Committed;
}
require_once('invalid_file.php'); // Auto rollback;
mysql_query('COMMIT');
が確認:) –