mysql_query("BEGIN");//開始一個事務
mysql_query("SET AUTOCOMMIT=0"); //設置事務不自動commit
$insert="INSERT INTO userinfo VALUES ('aa12','aa','1','aaa')";
mysql_query($insert);
mysql_query("COMMIT");//非autocommit模式,必須手動執行COMMIT使操作生效
//mysql_query("SET AUTOCOMMIT=0");
$insert="INSERT INTO userinfo VALUES ('aa20','aa','1','aaa')";
$insert="INSERT INTO userinfo VALUES ('aa8','aa','1')";
//mysql_query("COMMIT");
if(mysql_num_rows==0)
mysql_query("ROLLBACK");//非autocommit模式,執行ROLLBACK使事務操作無效
else echo "ok";
//mysql_query("CLOSE");
mysql_query("SET AUTOCOMMIT=1");//恢復autocommit模式
$insert="INSERT INTO userinfo VALUES ('aa15','aa','1','aaa')";
mysql_query($insert);//不需要手動執行COMMIT就可以使事務操作生效
執行BEGIN之後,其作用同set autocommit=0,而且之後設置set autocommit=0或1時無效。所以,為使操作清楚,一般不使用BEGIN。