业务经理

微信扫描以上二维码

028-61286886

技术咨询

数据库操作时,不满足更新条件更新失败

迅睿框架 更新 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
    满意答案
    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
    回复迅睿框架创始人 是这样的,我用模块添加了一个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
    回复迅睿框架创始人 而且,更新失败为什么不是返回false,而是都返回true
  • 李志杰 #4 · 2020-07-14 18:27:01
    迅睿框架创始人:6666666666666

迅睿系统漏洞

GEO系统
GEO系统(2026-09-15)
运营客户端,防止误触阴影处关闭对话框
独立站群系统
独立站群系统(2026-09-14)
子站独立部署时修复同步附件失败问题
在线客服
在线客服(2026-09-13)
修复删除会话报错问题 删除会话时联动删除聊天图片
在线考试竞赛系统
在线考试竞赛系统(2026-09-12)
增加投票功能 考试功能拓展 注意:更新后需要执行系统更新,更新数...
网上信箱
网上信箱(2026-09-12)
修复新版本兼容问题
GeoSeo收录宝
GeoSeo收录宝(2026-09-12)
1 优化Update.php文件,解决版本在线升级不完整问题 2 ...
GeoSeo工具箱
GeoSeo工具箱(2026-09-11)
修正历史记录推送
微信系统
微信系统(2026-09-11)
增加数据统计总览界面 账号管理增加服务和公众号的区别 菜单管理支持更...
答题系统
答题系统(2026-09-11)
一站式在线答题系统,支持真题考试、题库练习和错题本,适合培训、考证、...
阿里云滑动验证码
阿里云滑动验证码(2026-09-10)
采用阿里云验证码替换迅睿系统自带的图片验证码和滑动验证码。后台设置方...