PHP -MySQL插入和选择语句 - 如何使它们成为原子?

时间:2011-08-08 00:25:12

标签: php mysql insert atomic

我是PHP新手,我想知道如何克服这个看似简单的问题:

我有一个包含多个表的数据库。其中1个表称为“order_header”。 Order标头有一个名为“orderID”的字段,它是primaryKey并自动递增。 OrderID用于数据库中的其他表(food_table,drinks_table,merchant_info,customer_info等),并且对于特定订单是唯一的。

现在我使用通常的INSERT语句将数据插入到order_header中,order_header生成一个新的orderID。但是现在我需要检索刚刚创建的orderID并使用它将数据插入到该数据库的其他表中。

问题是如何在一个原子方法中同时插入数据和检索生成的orderID?我不能使用mySQL查询来获取最后的orderID,因为如果另一个线程同时在orderID中插入了一个条目,那该怎么办。

在Java中我想可以使用锁和@synchronized这个词,但是如何在PHP中执行此操作?

1 个答案:

答案 0 :(得分:5)

在查询后直接使用mysql_insert_id。它不会运行另一个查询来查找最后一个ID