Laravel 数据库事务
Laravel 事务手动使用事务:
//Controller控制器顶部
use LeagueFlysystemException;
//实际执行使用代码:
//执行sql操作
DB::beginTransaction();
try {
// 保存车辆信息
$res1 = Test::create(['name' => 'test1']);
if(!$res1){
throw new Exception('error1', 1);
}
$res2 = DB::table('test')->where([['id', '=', $res2->id])->update(['name' => 'test2']);
if(empty($res2)){
throw new Exception('error2', 1);
}
DB::commit();
} catch (Exception $e) {
DB::rollBack();
echo $e->getCode();
echo $e->getMessage();
echo $e->getLine();
}
echo true;
}
官网文档:
手动使用事务
如果你想要手动开启事务从而对回滚和提交有更好的控制,可以使用 DB
门面的 beginTransaction
方法:
DB::beginTransaction();
你可以通过 rollBack
方法回滚事务:
DB::rollBack();
最后,你可以通过 commit
方法提交事务:
DB::commit();
那也有框架自动事务
想要在一个数据库事务中运行一连串操作,可以使用 DB 门面的 transaction 方法,使用 transaction 方法时不需要手动回滚或提交:如果事务闭包中抛出异常,事务将会自动回滚;如果闭包执行成功,事务将会自动提交:
DB::transaction(function () {
DB::table('users')->update(['votes' => 1]);
DB::table('posts')->delete();
});
本文链接二维码可以保存在本地:保存
http://shixiangcun.cc/index.php?c=index&id=102&m=articleDetailInfo
分类 Laravel | 浏览 (6058) | 赞 (258) | 踩 (0) | | 2017-12-03 16:24:24 |
相关文章
- Mac安装Swoole扩展phpize 时 Cannot find autoconf 解决方法
- mac下安装swoole扩展报错PHP Startup Unable to load dynamic library
- PHP贷款等额本息、等额本金计算月供还款计划公式
- Laravel 关闭过滤排除部分路由VerifyCsrfToken 验证
- Laravel Horizon监控Redis队列queue
- Laravel 的任务调度计划任务的测试