【发布时间】:2017-05-02 06:19:40
【问题描述】:
如果同时提交,我将面临订单 ID 可能重复的问题。
我可以知道如何完全解决这个问题或避免它发生吗?
下面是我的代码,显示了我如何获取订单 ID 并将其发送到数据库
<?php
$sqlt = "SELECT ORD_ID FROM tpointgroup WHERE Group_ID = '$tid'";
$order = mysqli_query($conn , $sqlt);
$rowcount = mysqli_num_rows($order);
if ($rowcount == 0)
echo "No records found";
else
{
$rowt = mysqli_fetch_assoc($order);
}
$ordid = $rowt["ORD_ID"] + 1;
?>
$ORD_ID = date('ym').str_pad($tkid, 6, '0', STR_PAD_LEFT);
$insert = "insert into cusinfo (ORD_ID) values ('$ORD_ID')";
$insert3 = "UPDATE tpointgroup SET
ORD_ID = '$ordid'
WHERE Group_ID = $tid ";
我从 tpointgroup 表中获取订单 ID,因为我想知道当前订单 ID 是什么并将其加 1。
当用户单击提交时,订单 ID 将分配给客户并更新当前订单 ID到表 tpointgroup。
但是我的系统出现问题,订单ID重复,如果两个或多个用户同时提交,客户的订单ID将相同。
【问题讨论】:
-
使用 SELECT DISTINCT ORD_ID FROM tpointgroup WHERE Group_ID = '$tid'
-
哪个是
tpointgroup表的PRIMARY-KEY?tpointgroup中是否有任何AUTO-INCREMENT字段 -
@mith ,是的,它在同一个表中还有另一个自动增量
-
MySql 只允许一个或零个自动增量列。
-
请如上所述将表定义添加到您的问题中(SHOW CREATE TABLE)
标签: php mysql redundancy