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

WBOY
풀어 주다: 2016-06-20 12:34:29
원래의
937명이 탐색했습니다.

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

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

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

对比结果是大概有70人的list数据的数量,比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 哥们。
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿