Я столкнулся с проблемой возможного дублирования идентификатора заказа, если он будет отправлен одновременно.
Могу ли я узнать, как полностью решить эту проблему или избежать ее возникновения?
Ниже мой код показывает, как я получаю идентификатор заказа и отправляю его в базу данных.
<?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, потому что я хочу знать, каков текущий идентификатор заказа, и добавить 1 к нему.
Когда пользователь нажимает кнопку Отправить, идентификатор заказа будет назначен клиенту и обновит текущий идентификатор заказа в таблице tpointgroup.
Но в моей системе что-то не так с дублирующим идентификатором заказа, если два или более пользователей отправляют одновременно, идентификатор заказа клиента будет одинаковым.
Попробуйте следующее, чтобы создать уникальный идентификатор заказа.
$order_id = time() . mt_rand() . $tid;
Других решений пока нет …