如何循环最后插入的ID

时间:2019-01-22 16:36:14

标签: php mysql

我有这些查询集,除了我只能从UPDATE查询中的LAST_INSERT_ID()中获取一个值之外,它的工作状况还不错。

   $query .= "INSERT into itemorders 
   (itemID,colourID,itemName,itemSize,itemPrice,quantity,orderID) SELECT 
     itemID,colourID,itemName,itemSize,itemPrice,quantity, 
     LAST_INSERT_ID() FROM mycart WHERE email='".$email."'; ";

     $query .= "UPDATE CatalogueItemsSize p
     INNER JOIN itemorders i ON p.size = i.itemSize AND p.colourID = 
     i.colourID SET p.quantity = p.quantity - i.quantity WHERE i.id = 
     LAST_INSERT_ID();";

我了解它只能检索最后插入的单行,如何循环此行,以便能够捕获在第一个查询中插入的所有值?

目前,它仅从CatalogueItemsSize表中减去一行。

1 个答案:

答案 0 :(得分:1)

最后插入ID仅返回最后插入记录的ID。

如果您需要获取每个插入记录的最后一个插入ID,则需要运行SELECT语句,获取结果,然后为SELECT中的每个记录运行INSERT语句,然后使用{{ 1}}

此外,在您的INSERT语句中,last_insert_id()可能会导致错误,或者至少会产生意想不到的后果。