• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

一段代码执行了2条sql,寓意是想让两个sql相呼应,但是今天出现了点问题,大神请看内容

php 搞代码 3年前 (2022-01-23) 16次浏览 已收录 0个评论
文章目录[隐藏]

因为数据库字段挺多,我就打个比方
详细信息表 list
用户表 user 有一个字段 num

我执行一个方法,该方法每次往list中插入一条数据时,同时往user表的num+1

上个月大概有20W的注册用户,我分别把这些用户的list表中的数量求了出来,并且与user表中num做了对比。

对比结果是大概有70人的list数据的数量本%文来源gaodaimacom搞#^代%!码网@搞代gaodaima码,比num所记录的数量少大概10条左右。

因为方法是先后执行的,大概是这样的先后顺序
public function test(){
insert $data;
update num+1;
}

先往list里面插入,后更新的user num字段

我想问一下,想这种数据不同步的情况都会在什么情况下发生。求别让贴代码。

回复讨论(解决方案)

你这个应该要使用 事务
当 insert $data 或 update num+1 失败时就撤销操作

是否用了事务处理? 是否判断插入成功后再更新字段
insert $data;失败了但仍然执行了update num+1;就会不一致啦

是否用了事务处理? 是否判断插入成功后再更新字段
insert $data;失败了但仍然执行了update num+1;就会不一致啦

大哥,一般什么情况下会失败, 感觉没什么情况啊,就是一条insert语句,用户名是手机号。字段也都可以为空

手机号重复,写入值和字段类型不一致 都可能失败的
你写入数据库前应该过滤用户数据

手机号重复,写入值和字段类型不一致 都可能失败的
你写入数据库前应该过滤用户数据

肯定过滤了,那天写了一个监控,结果到现在没出问题,等出问题就知道啥情况了,thanks 哥们。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:一段代码执行了2条sql,寓意是想让两个sql相呼应,但是今天出现了点问题,大神请看内容

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址