MySQL以错误的顺序插入数据

时间:2012-10-11 19:11:38

标签: mysql database insert

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

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'];

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

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

希望能更好地解释它!

1 个答案:

答案 0 :(得分:0)

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