ThinkPHP5中的事务操作

来源:互联网 发布:初中数学解题软件 编辑:程序博客网 时间:2024/05/19 18:39

官方手册里的事务操作
1.自动控制事务处理(匿名函数方式)

Db::transaction(function(){    Db::table('think_user')->find(1);    Db::table('think_user')->delete(1);});

2.手动控制事务

// 启动事务Db::startTrans();try{    Db::table('think_user')->find(1);    Db::table('think_user')->delete(1);    // 提交事务    Db::commit();} catch (\Exception $e) {    // 回滚事务    Db::rollback();}

除了官方推荐方式,我们也可以另外使用模型来控制事务

$test1Model=new Test1Model;$test2Model=new Test2Model;$test1Model->startTrans();try{    $test1Model->where('id','eq',1)->delete();    $test2Model->where('id','eq',1)->delete();    $test1Model->commit();}catch(\Exception $e){    $test1Model->rollback();}

需要注意的几个方面是

  1. 使用事务处理的话,需要数据库引擎支持事务处理。 比如 MySQL 的MyISAM 不支持事务处理,需要使用InnoDB 引擎
  2. 注意在事务操作的时候,确保你的数据库连接是相同的
  3. 业务上的出错和数据库操作的出错是不同的,你可能需要自己捕获业务上的出错信息
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 十一个月孩子感冒流鼻涕怎么办 7个月孩子流鼻涕怎么办 18个月的宝宝流鼻涕怎么办 6个月宝宝咳嗽流鼻涕怎么办 18个月宝宝咳嗽流鼻涕怎么办 6个月宝宝流鼻涕打喷嚏怎么办 宝宝18个月流鼻涕怎么办 18个月宝宝感冒流鼻涕怎么办 小孩睡觉鼻子不通气怎么办 宝宝鼻子里有鼻涕出不来怎么办 孩子喉咙有痰呼呼响怎么办 六个月宝宝鼻塞怎么办速效办法 两个月小孩鼻子不通气怎么办 一岁宝宝流清鼻涕怎么办 孩子鼻子里有鼻涕怎么办 宝宝晚上睡觉鼻子不通气怎么办 宝宝感冒睡觉鼻子不通气怎么办 宝宝3个月流鼻涕怎么办 小孩吃着了发烧怎么办 半岁宝宝鼻子塞怎么办 宝宝伤风鼻子不通气怎么办 二十天的宝宝伤风鼻子不通怎么办 一个多月的宝宝鼻子有鼻屎怎么办 2个月宝宝鼻子里有鼻屎怎么办 四个月婴儿感冒发烧怎么办 一个月婴儿感冒发烧怎么办 五个月婴儿感冒发烧怎么办 两个月的婴儿感冒发烧怎么办 9个月婴儿感冒发烧怎么办 两个月婴儿感冒鼻塞咳嗽怎么办 两个月婴儿感冒咳嗽流鼻涕怎么办 小孩感冒发烧怎么办速效办法 宝宝打喷嚏流清鼻涕怎么办 宝宝感冒流清鼻涕怎么办 2岁感冒流清鼻涕怎么办 小孩感冒流清鼻涕怎么办 4岁宝宝半夜发烧怎么办 四岁宝宝免疫力低下怎么办 两岁宝宝咳嗽流鼻涕怎么办 小婴儿流清鼻涕怎么办 14个月宝宝流鼻涕怎么办