首页 > php教程 > php手册 > 正文

ThinkPHP数据库驱动之mysql事物回滚

php中文网
发布: 2016-06-07 11:36:09
原创
1418人浏览过

很简单的一个事物回滚,简单介绍下事物回滚,示例怎么使用Thinkphp的回滚。下面上俩个由浅入深的例子。会给你帮助理解,和提升。
//具体的讲解请允许我把它放在了 http://www.ichasem.com/?p=331 这里
1、开启事务方法 startTrans()
2、事务提交方法 commit()
3、事务回滚方法 rollback()
用法例子:$order = M(‘order’);<br> $allAdded = true; //先设定一个值为 true;<br> $data['name'] = 'winter';<br> $order-&gt;startTrans(); //开启事物<br> for($i = 1;$i     $sign = $order-&gt;add($data); //添加一条数据到order表<br>     if(!$sign){<br>         $order-&gt;rollback(); //如果order添加失败事物回滚<br>         $allAdded = false; //并且把allAdded设置为 false<br>     }<br> }<br><br> //回滚<br> if($allAdded){<br>     $order-&gt;commit(); <br>     // 如果allAdded为真则两条数据都成功;那么 commit事物提交<br>     echo '添加成功';<br> }else{<br>     echo '添加失败';<br> }小解析:如果commit了。那么就提交插入数据。如果发现alladded为假说明有条数据没插入正确。那么就rollback回滚就会取消事物开启之后操作数据库的所有行为。

winter在提供一个例子助于大家加深理解~public function insertdata(){<br>     $model = M();<br>     $model-&gt;startTrans();<br>     $data['name'] = 'winter';<br> //增加一条用户信息<br>     $si = $model-&gt;table(C('DB_PREFIX').'user')-&gt;add($data);<br>     if(!$si){<br>         $model-&gt;rollback();<br>         exit();<br>     }<br>     $car['brand'] = $si;<br> //增加一条用户id<br><br>     $c = $model-&gt;table(C('DB_PREFIX').'car')-&gt;add($car);<br>     if($si &amp;&amp; $c){<br>         $model-&gt;commit();<br>     }else{<br>         $model-&gt;rollback();<br>     }<br> }

AD:真正免费,域名+虚机+企业邮箱=0元

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号