0

订单完成后,我的付款处理方收到以下回复

Receipt_ID1, Order_ID1, Data_1

我成功地将这些值以相同的顺序插入到我的 MySQL 表中。但有时当在 1-2 秒内执行两个订单时,数据值 会以错误的方式插入到表中。数据值交换。我得到以下结果

Receipt_ID1, Order_ID1, Data_2
Receipt_ID2, Order_ID2, Data_1

谁能告诉我为什么会发生这种情况以及如何确保在正确的收据中插入正确的数据值?

好的,这些是 SQL 语句的实际顺序 -

$new_order_id_query = "SHOW TABLE STATUS LIKE ORDERS";
$new_order_id = $row['Auto_increment'];

这就是我从 Orders 表中获取新订单 ID 并将其发送到支付处理器的方式。然后我收到响应数组并将其分解并执行一个简单的插入语句,如下所示

INSERT INTO Receipts Values(ReceiptID, OrderID, Data) Values ($Receipt_ID, $Order_ID, $Data);

希望能更好地解释它!

4

1 回答 1

0

当您将记录插入表中时,您应该使用mysqli_insert_idor获取 id PDO::lastInsertId()。这是 100% 确保获得为该插入生成的 id 的唯一方法。

于 2012-10-12T08:13:09.563 回答