php事务处理 thinkphp,ThinkPHP学习笔记 事务处理

事务处理是数据库数据处理中经常用到的一个功能,特别是商务之类的应用,比如a给b打了钱,数据库中a的钱数应该减少,b的钱数应该增加,

若a数据操作成功,而b的数据因某些原因操作失败,这时数据就会有问题。这种相关的系列操作需要进行事务处理。

事务是DBMS得执行单位。一般来说,事务是必须满足4个条件(ACID):

1.  原子性(Autmic):        事务在执行性,要做到“要么不做,要么全做!”,不允许事务部分执行。

2.  一致性(Consistency): 事务得操作应该使使数据库从一个一致状态转变倒另一个一致得状态。修改的数据之间应该有所关联。

3.  隔离性(Isolation):      如果多个事务并发执行,应象各个事务独立执行一样。

4.  持久性(Durability):    一个成功执行得事务对数据库得作用是持久得,即使数据库应故障出错,也应该能够恢复。

下面看Thinkphp的一个例子。

//实例化的数据库对象

$model = new Model();

//开启事务

$model->startTrans();

//默认结果

$judge = true;

//数据操作

$sql1 ="delete  from TableOne  where ...";

$sql2 ="delete  from TableTwo  where ...";

//执行数据操作

$result1 = $model->query($sql1);

if(!$result1)  $judge = false;

$result2 = $model->query($sql2);

if(!$result2)  $judge = false;

if($judge){

//如果2条都执行成功,则提交完成数据库操作

$db->commit();

}else{

//如果有其中一条执行失败,则rollback,所有数据还原到sql1和sql2都没执行的状态。

$db->rollback();

}

事务处理对防止数据污染,保持数据正常有着重大的作用。对有比较重要关联,重要数据的连续操作,尽量用上事务操作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值