通过路由,交换,安全,Qos四大典型技术模块同你分享网络运维中的技术难题,让老司机带你躲过网络运维常见的那些坑, 查看详情>>>
0

我的帖子

个人中心

设置

  发新话题
比如到银行去转账,首先要扣除自己的钱,然后对方账号要增加相应的数字,如果前者成功了,后者失败了,那你的钱就白打过去了。这样的道理,相信大家很清楚。

当我们需要连续处理数据库多条数据,并且需要保障同时成功的时候,就要用到事务处理了。

在thinkphp中使用相当简单:
//事务处理
        public function roll(){
                $t1 = M('t1');
                $t2 = M('t2');

                echo count($t1->select());
                echo '<br>';
                echo count($t2->select());
                echo '<br>';

                $t1 -> startTrans();        //开启事务
                $re1 = $t1 -> delete(2);
                $re2 = $t2 -> delete(2);
                if($re1 and $re2){  //任何一个失败,都能回滚
                        $t1 -> commit();        //真正提交数据库
                }else{
                        $t1 -> rollback();        //事务回滚
                }

                echo count($t1->select());echo '<br>';
                echo count($t2->select());echo '<br>';
        }
如果你不是用的thinkphp开发,那就要去搜索下纯mysql如何处理事务的函数了。




本帖最后由 七彩极 于 2017-6-27 15:58 编辑
echo '';
应该该成:echo '<br/>';

被论坛过滤了。



宝剑厉不厉害,要看它的主人是谁,不信来PHP版块看看~!
不错,这也是一个很好的知识点总结



‹‹ 上一贴:【提问】php用curl方法请求微信接口缓慢 ...   |   下一贴:【教程经验】怎么判断php常量、变量、函数、类是否存 ... ››
  发新话题
快速回复主题
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 友情链接 |意见反馈 | 网站地图
Copyright©2005-2018 51CTO.COM
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系:bbs@51cto.com