thinkphp5 事务回滚_tp5事务回滚操作多表

array(5) {

["title"] => string(9) "水电费"

["art_desc"] => string(0) ""

["imageurl"] => string(0) ""

["views"] => string(0) ""

["category_id"] => array(2) {

[0] => string(1) "3"

[1] => string(1) "5"

}

2.后台事务操作插入多表(文章表,文章和分类关联表)

public function RelaCateSave($data){

// 多表 开启事务操作

Db::startTrans();

try{

$res = model("article") -> save($data);

$art_id = model("article") -> getLastInsID(); //获得刚插入的id

// 获取所属分类(数组集合)

$category_id_arr = $data["category_id"];

foreach ($category_id_arr as $key => $value) {

$item = [

"art_id" => $art_id,

"category_id" => $value,

];

$result = model("ArtRelaCate") -> insert($item);

}

// 提交事务

Db::commit();

}catch(Exception $e){

// 回滚事务

Db::rollback();

dump($e->getMessage());

return $this->error("提交失败");

}

return $this->success("提交成功","article/index");

}

一张积分表,用户名 应返回积分balance(商品金额*10) 返还周期period(单位月) 每月1号应返回积分数average(sum/period) 剩余应返回积分balance(--average)  上次返还积分的时间  状态(0已返还清,1未返还清)

积分表里减积分,用户表里加积分,

开启事务

先算出time超过5天的时间 $time = date("Y-m-d H:i:s", strtotime("-5 days"));

"select user from tablename where status=1 and time

为用户添加积分

"update tablename set balance=balance+100";

修改积分表余额与状态

"update tablename set balance=balance-100 where status=1 and time

查询积分表status=1 and balance=0的数据,修改状态为0

"update tablename set status=0, time="当前时间" where status=1 and number=0;

mysql:关闭事务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值