素材牛VIP会员
thinkphp+ myisam 数据如何回滚?
 朱***叶  分类:ThinkPHP  人气:653  回帖:4  发布于6年前 收藏

比如注册,逻辑是首先插入数据到表a,然后根据返回结果来做一些判断,最后返回true或者false。现在的问题是,如果我在 做判断的时候发现错误了,那么表a的数据已经插入了,怎么办?能回滚吗?

 标签:thinkphp

讨论这个帖子(4)垃圾回帖将一律封号处理……

Lv2 入门
黑***s 页面重构设计 6年前#1

ThinkPHP提供了单数据库的事务支持。
举个例子:
$m=D('YourModel');//或者是M();
$m2=D('YouModel2');
$m->startTrans();//在第一个模型里启用就可以了,或者第二个也行
$result=$m->where('删除条件')->delete();
$result2=m2->where('删除条件')->delete();
if($result && $result2){
$m->commit();//成功则提交
}else{
$m->rollback();//不成功,则回滚
}

Lv6 码匠
Ga***er 软件测试工程师 6年前#2
  1. 插入数据库的时候可以获取到插入的ID,然后根据你说的,判断失败拿刚刚插入的ID删除便是。

  2. 至于你说的回滚,貌似从代码层回滚不了吧

Lv4 码徒
pe***ei 移动开发工程师 6年前#3

ThinkPHP 的事务支持可以帮到你。

ThinkPHP - 事務支持

Lv3 码奴
走***一 交互设计师 6年前#4

不是很明白你的意思 ,哪些判断不能在写入数据库前进行吗?

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取