mysql query事务处理_MYSQL--事务处理

1、用begin,rollback,commit来实现

begin 开始一个事务

rollback 事务回滚

commit  事务确认

2、直接用set来改变mysql的自动提交模式

MYSQL默认是自动提交的,也就是你提交一个QUERY,它就直接执行!我们可以通过

set autocommit=0   禁止自动提交

set autocommit=1 开启自动提交

来实现事务的处理。

但注意当你用 set autocommit=0 的时候,你以后所有的SQL都将做为事务处理,

直到你用commit确认或rollback结束,注意当你结束这个事务的同时也开启了个新的事务!按第一种方法只将当前的作为一个事务!

个人推荐使用第一种方法!

[PHP]

function Tran( $sql ) {

$judge = 1;

mysql_query('begin');

foreach ($sql as $v) {

if ( !mysql_query($v) ) {

$judge = 0;

}

}

if ($judge == 0) {

mysql_query('rollback');

return false;

}

elseif ($judge == 1) {

mysql_query('commit');

return true;

}

}

[/PHP]

************************************************

$handler=mysql_connect("localhost","root","");

mysql_select_db("task");

mysql_query("SET AUTOCOMMIT=0");//设置为不自动提交,因为MYSQL默认立即执行

mysql_query("BEGIN");//开始事务定义

if(!mysql_query("insert into trans (id) values('2')"))

{

mysql_query("ROOLBACK");//判断当执行失败时回滚

}

if(!mysql_query("insert into trans (id) values('4')"))

{

mysql_query("ROOLBACK");//判断执行失败回滚

}

mysql_query("COMMIT");//执行事务

mysql_close($handler);

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值