TP5 模型事务操作
注意:数据只要涉及多表一致性操作,必须要开启数据库事务操作
ThinkPHP5 中模型层中使用事务:
        try{
            $this->startTrans();
            $this->data($order_data)->isUpdate(false)->save();
            $new_order = $this->order_no;
            if (!is_numeric($new_order)) throw new \Exception("商品订单添加失败");
            $this->hasMany('OrdersAccess', 'order_no', 'order_no')->saveAll($data_order);
            $this->commit();
            return ['code' => '1001', 'msg' => '商品订单添加成功', 'data' => ['order_no' => $new_order, 'cart_list' => $data_order]];
        }catch (\Exception $e){
            $this->rollback();
            return ['code'=>'1008','msg'=>'商品订单添加失败','data'];
        }
原文:https://www.kancloud.cn/mikkle/thinkphp5_study/557903
TP5 模型事务操作的更多相关文章
- TP5数据库事务操作
		
使用事务处理的话,需要数据库引擎支持事务处理.比如 MySQL 的 MyISAM 不支持事务处理,需要使用 InnoDB 引擎. 使用 transaction 方法操作数据库事务,当发生异常会自动回滚 ...
 - tp5.1的事务操作
		
普通的事务操作很简单,最简单的方式是使用 transaction 方法操作数据库事务, 当闭包中的代码发生异常会自动回滚, 例如: Db::transaction(function () { Db:: ...
 - ThinkPHP5.0框架开发--第7章 TP5.0数据库操作
		
ThinkPHP5.0框架开发--第7章 TP5.0数据库操作 第7章 TP5.0数据库操作 ===================================================== ...
 - ThinkPHP5 模型 - 事务支持
		
使用事务之前,先确保数据库的存储引擎支持事务操作. MyISAM:不支持事务,主要用于读数据提高性能 InnoDB:支持事务.行级锁和并发 Berkeley DB:支持事务 ThinkPHP5 使用事 ...
 - tp5模型事件回调函数中不能使用$this
		
tp5模型事件回调函数中不能使用$this,使用会报错,涉及到数据库操作使用Db类,不能使用$this->save()之类的方式 如果回调函数中需要使用类内函数,需要将函数定义为static,通 ...
 - 04_ThreadLocal整合事务操作
		
文章导读: 本文主要讲解了如何在没有框架情况下如何解决Dao的事务问题, 重点理解Connection存放到WeakReference中为什么垃圾回收的时候Connection不回收 视频与源码下载: ...
 - 学习ThinkPHP的第20天--MySQL事务操作、查询事件、一对一关联
		
之所以从20天才开始写随笔记是因为之前没搞自己的博客 从20天开始记录我在ThinkPHP中的点点滴滴 1.MySQL事务操作 /**事务操作*/ //startTrans启动事务.rollback回 ...
 - Yii2 事务操作
		
官网关于Yii2 事务的说明文档 http://www.yiiframework.com/doc-2.0/guide-db-active-record.html Working with Transa ...
 - [PHP] - PDO事务操作
		
PHP使用PDO事务操作数据库. 参考文章: http://php.ncong.com/mysql/pdo/pdo_shiwu.html 上代码: <!doctype html> < ...
 
随机推荐
- Java多线程编程——并发编程原理(分布式环境中并发问题)
			
在分布式环境中,处理并发问题就没办法通过操作系统和JVM的工具来解决,那么在分布式环境中,可以采取一下策略和方式来处理: 避免并发 时间戳 串行化 数据库 行锁 统一触发途径 避免并发 在分布式环境中 ...
 - CentOS6 配置静态IP
			
1.首先配置网络连接方式 VMware选择编辑->虚拟网络编辑器->VMnet0桥接模式 2.配置网卡 vim /etc/sysconfig/network-scripts/ifcfg-e ...
 - Ubuntu 搭建 Zerotier One MOON 根目录服务器
			
原文转摘:http://www.congan.wang/archives/947 博主倒腾了一天,总算搞定了,主要是受到各种搭建教程的错误引导,导致关键过程错误.官网的MOON搭建教程:https:/ ...
 - [UE4]时序问题
			
时序问题 有依赖关系的两段代码,执行时间不确定,所引起的问题. 举例 1.Shooter引用了Weapon,Weapon引用了Shooter.射击者需要持有枪,枪需要判断是否有主人(枪的持有者).在枪 ...
 - jms和activemq简介
			
一.JMS简介 JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消 ...
 - Keras 实现一个简单GAN
			
Keras 实现一个简单GAN 代码中需提供: Loss Function 参见Keras 或者 Tensorflow 文档 model_param_matrix 反向调整的模型参数/参数矩阵 ...
 - WebBrowser JS回调delphi的方法 (简单通用)
			
上一部分讲了Delphi根据方法名调用方法,这一部分还有用到,接着上一章: [主要原理] 通过TEmbeddedWB控件的OnShowMessage事件捕获弹窗来实现,弹窗时定义方法名和参数,在捕获方 ...
 - MySQL查询表的所有列名,用逗号拼接
			
问题场景 在MySQL中,需要以逗号拼接一个表的所有字段 sql语句 SELECT GROUP_CONCAT(COLUMN_NAME SEPARATOR ",") FROM inf ...
 - Django中的跨表查询,多表查询。
			
一:Django中的ORM进行操作. 必须掌握的十三条: <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 & ...
 - 由echarts想到的js中的时间类型
			
在工作中使用echarts时,偶然发现折线图中对时间类型变量的用法: now前面的+号何解? now = new Date(+now + oneDay); 后来查阅资料,看到一篇博客,解释如下:这是对 ...