内网系统,单号在提交时有做防重复判断,但是相同单号提交一次变成两次。
内网系统,
服务端PHP+MYSQL
数据表字段的值在写入时PHP中有做判断,正常提示相同的单号不可能会重复插入数据的,但是有时候人家操作时明明只提交了一次,但是发现数据一模一样且同一时间同一秒写入了两条。
那位大侠知道怎么回事呀。
------解决方案--------------------秒并发问题。
例如有两次请求A,B同时到达
AB,都过了判断是否重复那个位置,然后当A插入后,B都会跟着插入。
可以这样写来避免重复插入。
例如test表有两个字段 name,value
INSERT INTO test(name, value) SELECT 'fdipzone', '123' FROM DUAL WHERE 'fdipzone' NOT IN (SELECT name FROM test);