事务的模式:
是指,在mysql的安装之后的一种语句执行模式:
自动提交模式:
这是默认模式。这种模式,会让我们的sql,每一条语句,都会“当做”一个事务去执行。
set autocommit = 1; //这是默认值
手动提交模式:
这种模式,我们通常使用的增删改语句,并不会立即生效,而是需要在之后人为使用“commit”来提交才能生效。
set autocommit = 0;
举例:
set autocommit = 0;#设置为手动提交模式了,即非自动
insert into .......
update .....
delete ......
commit; //提交上述多条增删改语句,此时才生效;否则就不会生效;
典型事务安全应用的代码模式
基本模式:
1, start transaction; //也可以使用:begin;,表示“启动(开启/创建)一个事务”
2,执行若干业务上需要的增删改语句;
3,判断是否发生错误:
如果错误:rollback;//回滚事务;这样之后,之前的多条语句,不管是否执行过,都“撤销”
如果没有错:commit;//提交事务,也就是对之前的所有事情一次性进行提交确认——生效了
体现在php中,一般就这么写:
1,mysql_query(“start transaction;”);//启动一个事务
2,执行若干语句:
$result1 = mysql_query(“insert into .....”);
$result2 = mysql_query(“update ....”);
.......
3,判断执行结果并决定是提交还是回滚:
if( $result1 && $result2 && .... ){
mysql_query(“commit”);
}
else{
mysql_query(“rollback;”);
}
说明:
如果按这种“启动事务”的代码流程,则跟系统中的事务模式的设置无关了。
案例:
领取专属 10元无门槛券
私享最新 技术干货