首页 > thinkphp+ myisam 数据如何回滚?

thinkphp+ myisam 数据如何回滚?

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


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

ThinkPHP - 事務支持


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();//不成功,则回滚
}


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


  1. 插入数据库的时候可以获取到插入的ID,然后根据你说的,判断失败拿刚刚插入的ID删除便是。

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

【热门文章】
【热门文章】