我有一个网络应用程序,用户填写表单并生成一个唯一的 ID,例如“SC001001”。生成代码是
$result = mysqli_query($con,"SELECT OA_NO FROM student where CUSTID='SC001'");
$x=0;
$num_rows = $result->num_rows;
if($num_rows==0){
$var1="SC001001";
}
else{
while($row = mysqli_fetch_array($result))
{
$next[$x]=substr($row['OA_NO'],2);
$x=$x+1;
}
$arrlength=count($next);
$inc=max($next)+1;
$newvar= "SC00".$inc;
$var1=$newvar;
}
将其保存在数据库中时,OA_NO 是主键。
但是当两个用户同时按下提交按钮时,我收到错误消息#1062。存在重复条目并且插入第一个请求的条目...
我的问题是我该如何输入这两个值并增加第二个值..请帮忙!!
最佳答案
如果在插入时找到最大值,则该值应始终是唯一的。我添加了 LPAD
函数,以防您希望保持 userID 的长度一致:
INSERT INTO students (`OA_NO`, `userID`)
SELECT MAX(OA_NO) + 1, CONCAT('SC00', LPAD(MAX(OA_NO) + 1, 4,'0'))
FROM students
ON DUPLICATE KEY UPDATE
`OA_NO` = VALUES(OA_NO) + 1,
`userID` = CONCAT('SC00', LPAD(VALUES(OA_NO) + 1, 4,'0'));
关于php - 表单提交时处理 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24082271/