发布时间:2018-04-11 编辑:钰歆博客 阅读(37)
//开启事务
D("exam")->startTrans();
//事务回滚
D("exam")->rollback();
//事务提交
D("exam")->commit();
// 在User模型中启动事务
$User->startTrans();
$Info = M("Info");
$Info->save($User);
if (操作成功){
// 提交事务
$User->commit();
}else{
// 事务回滚
$User->rollback();
}
或者:
$Model = M();
$Model->startTrans();
$ret = $Model->table('xf_order')->where($where)->save($data);
if (操作成功){
// 提交事务
$Model->commit();
}else{
// 事务回滚
$Model->rollback();
}
值得注意的是:
1.只有数据库引擎是InnoDB才支持事务,在执行事务的过程中不能再做其他查询类的工作
2.数据库操作涉及到跨库,需要同时开始两个库的事务,避免事务回滚的不一致(即一个库回滚了,另一个库没回滚)
3.开启事务需要制定明确的对象表或者模型
4.如果设置了读写分离。一定不要来回切换数据库。容易导致事务的异常出错
标签:
下一篇:获取网卡地址