开发框架 版主:迅睿框架研发组
数据库操作的时候如果不满足更新条件更新失败返回什么有没有事务
类型:迅睿CMS 更新时间:2020-07-14 18:27:01 数据库

数据库操作的时候  \Phpcmf\Service::M()->db->table('1_shop')->where('num',$num)->where('id', $id)->update(['num'=>$num2]); 如果不满足更新条件更新失败返回什么,有没有事务封装的方法

回帖
  • #1楼    迅睿框架创始人
    2020-07-14 17:53:28
    Chrome 0
    if (\Phpcmf\Service::M()->db->table('1_shop')->where('num',$num)->where('id', $id)->countAllResults()) {\Phpcmf\Service::M()->db->table('1_shop')->where('num',$num)->where('id', $id)->update(['num'=>$num2]);} else {不满足条件}
    满意答案
  • 李志杰
    #2楼    李志杰
    2020-07-14 18:07:59
    Chrome 0
    回复迅睿框架创始人 是这样的,我用模块添加了一个num库存字段,用户每提交一次就库存值减一 $rt=\Phpcmf\Service::M()->db->table('1_shop')->where('id',$id)->get(); $row = $rt->getRowArray(); $num=$row['num']; $num2=$num-1; $rt=\Phpcmf\Service::M()->db->table('1_shop')->where('num',$num)->where('id', $id)->update(['num'=>$num2]); //模块这里就是不管更新失败还是成功都是返回true没有凭证 接着下面我会将这个模块内容的id更新到用户提交的表单里的一个字段,证明领取对应的内容优惠券成功 现在的问题是,如果我没有库存,始终返回true,我下面针对表单用户提交后对他提交的表单数据更新时有可能同一时间别的用户提交了已经把这个内容的库存消耗完了,会导致库存异常问题,所以这里存在无法判断更新状态导致下面更新有可能逻辑错误
  • 李志杰
    #3楼    李志杰
    2020-07-14 18:11:27
    Chrome 0
    回复迅睿框架创始人 而且,更新失败为什么不是返回false,而是都返回true
  • 李志杰
    #4楼    李志杰
    2020-07-14 18:27:01
    Chrome 0
    迅睿框架创始人:6666666666666