批量插入后检索ID

时间:2012-07-18 13:18:35

标签: php mysql insert mysqli bulkinsert

我正在使用MySQL 5.5和PHP 5.4。我正在执行批量插入,需要捕获所有新插入的ID。这是我的代码:

$db->query("INSERT INTO commodity (analysis_id, commodity_description, a_units, 
a_average_yield, a_average_price) SELECT $analysis_id, commodity_description, 
a_units, a_average_yield, a_average_price FROM commodity WHERE analysis_id = 
$import_analysis_id");

有没有办法检索所插入行的所有新ID?使用$db->insert_id仅返回单个ID。我不想使用PHP循环并执行几个查询,但如果必须的话,我会。谢谢!

2 个答案:

答案 0 :(得分:4)

首先选择表格中的最高ID,即可找到自动递增的id。插入后id高于新值。

select max(id) from commodity 

答案 1 :(得分:0)

我想我一直在想这个。由于我正在插入analysis_id(例如,案例编号,客户编号等),因此我决定在此之后运行一个查询,该查询将为插入的analysis_id提取所有ID。这解决了我的问题。