Db::startTrans();

try{

Db::commit();

} catch (\Exception $e) {

Db::rollback();

}

use think\Db;  

    public function addInfoData($member_id, $type, $money, $invoice_name, $invoice_tel, $email, $taxpayer_number, $id)
{
Db::startTrans();
try{
$invoice_id = $this->insertGetId($data);//添加 发票记录
$pay_log_model = new PayLog();
$pay_log_res = $pay_log_model->updateDataByWhere([['id', 'IN', $id]], ['invoice_id' => $invoice_id]);//更新 支付订单
if($invoice_id && $pay_log_res){
Db::commit();
return ['code' => 200];
}else{
addlog('/upload/running_log/invoice','invoice', '申请开票失败,$invoice_id:'.$invoice_id.';$pay_log_res:'.$pay_log_res.'开票订单详情:'.json_encode($data));
Db::rollback();
return ['code' => -100, 'msg' => '修改失败'];
}
} catch (\Exception $e) {
addlog('/upload/running_log/invoice','invoice', '申请开票失败,开票订单详情:'.json_encode($data).'----结果:'.$e->getMessage());
Db::rollback();
return ['code' => -100, 'msg' => '修改失败'];
}
}

TP事物的写法的更多相关文章

  1. tp修改的写法

  2. oracle 单独开始一个事物的写法 。

    SET TRANSACTION NAME 'Update salaries'; SAVEPOINT before_salary_update; UPDATE employees SET salary= ...

  3. tp集成支付宝担保支付

    现在的网站功能越来越全乎了,很多网站都需要做支付功能,而且很多大平台都提供了各式各样的api来扩充自己的用户和开发者.话说,这种使用大平台的api来做支付,无论是从成本上还是从开发效率上都是很好的选择 ...

  4. play with variadic template

    我曾在公司内部的一次技术培训课程中讲到如何展开可变模板参数的问题,具体来说是如何打印可变模板参数,我初略数了一下,有很多种,下面来看看到底有多少种不同的方法展开可变模板参数吧. //展开变参的N种方法 ...

  5. python 终级篇 django ---ORM操作

                                       一般操作                                                          必会的 ...

  6. tp 5.0 mysql 事物

    mysql  默认 MyISAM存储引擎,不支持事物处理,InnoDB存储引擎提供了具有提交.回滚和崩溃恢复能力的事务安全.但是对比Myisam的存储引擎,InnoDB写的处理效率差一些并且会占用更多 ...

  7. tp 中一个字段写两个表达式的写法

    $maps['deadline'] = array(array('gt',0),array('elt',$endTime), 'and');

  8. TP 控制器和模型里面order 写法不同

      控制器: Db::table('think_user')->where('status=1')->order('id desc')->limit(5)->select(); ...

  9. tp剩余未验证内容-7

    bash脚本中 的 set -e表示 exit immediately if a simple command returns a non-zero value.主要是为了防止错误被忽略.会被立即退出 ...

随机推荐

  1. iOS textView的使用总结

    转自:http://blog.csdn.net/zhaopenghhhhhh/article/details/11597887 在.h文件中声明: @interface ProtocolViewCon ...

  2. linux gre隧道创建

    目录 linux gre隧道创建 实验环境 实验目的 实验步骤 1.在host A(10.10.10.47)上面操作 2.在host B(192.168.0.118)上面操作 实验结果 还原实验环境 ...

  3. pandas学习(四)--数据的归一化

    欢迎加入python学习交流群 667279387 Pandas学习(一)–数据的导入 pandas学习(二)–双色球数据分析 pandas学习(三)–NAB球员薪资分析 pandas学习(四)–数据 ...

  4. 配置中心入门案例以及出现Could not resolve placeholder 'XXX' in value "${XXX}"的解决方式

    编写配置中心的服务端 创建项目 修改 pom 文件添加 config-server 坐标 <?xml version="1.0" encoding="UTF-8&q ...

  5. dubbo 订阅 RPC 服务

    Dubbo 订阅 RPC 服务 建立消费者者项目 pom.xml <?xml version="1.0" encoding="UTF-8"?> &l ...

  6. 基于 H5 + WebGL 实现 3D 可视化地铁系统

    前言 工业互联网,物联网,可视化等名词在我们现在信息化的大背景下已经是耳熟能详,日常生活的交通,出行,吃穿等可能都可以用信息化的方式来为我们表达,在传统的可视化监控领域,一般都是基于 Web SCAD ...

  7. 【大厂】389- 解密国内BAT等大厂前端技术体系-阿里篇(长文建议收藏)

    进入2019年,大前端技术生态似乎进入到了一个相对稳定的环境,React在2013年发布至今已经6年时间了,Vue 1.0在2015年发布,至今也有4年时间了. 整个业界在前端框架不断迭代中,也寻找到 ...

  8. js中promise解决callback回调地狱以及使用async+await异步处理的方法

    1.callback回调地狱 function ajax(fn) { setTimeout(()=> { console.log('你好') fn() }, 1000) } ajax(() =& ...

  9. SSM(Spring+SpringMVC+Mybatis)框架整合

    1.数据准备 SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `admin` -- - ...

  10. 想要入行web前端要知道web前端的的基本工作职责

    入一行,要先知一行 ”:我们来看看web前端开发职位 无论什么门派都要做到的一些基本工作职责 首先,你必须是一个合格的“页面仔”,这个叫法不好听,但很生动: 我们都知道,所有呈现的内容都是基于HTML ...