我正在编写一个Codeigniter脚本,我使用foreach插入了多行。我想获得所有最后插入的ID。
这是我的代码:
public function savePickupDataModal($dates, $pickData) {
foreach ($dates['dates'] as $date) {
$sql = 'INSERT INTO pickupManagement (dates, readyhour, readymint, readyformat, latesthour, latestmint, latestformat, approxVal, otherComment) ' .
'VALUES("' . $date . '","' . $pickData['readyhour'] . '","' . $pickData['readymint'] . '","' . $pickData['readyformat'] . '","' . $pickData['latesthour'] . '","' . $pickData['latestmint'] . '","' . $pickData['latestformat'] . '","' . $pickData['approxVal'] . '","' . $pickData['otherComment'] . '")';
$query = $this->db->query($sql);
if ($this->db->affected_rows() > 0) {
return true;
} else {
return false;
}
}
}
这里的日期数组包含任意数量的日期,如3,4或5,因此插入查询将被执行,直到数组包含日期数。
如何获取所有最后插入的记录ID?
答案 0 :(得分:1)
在您的情况下,您实际上正在执行多个独立查询,因此您可以获取最后一个ID并将其一遍又一遍地推送到数组中。
$affected_ids = array();
foreach(....
$query = .....
if($this->db->affected_rows() > 0)
$affected_ids[] = $this->db->insert_id();
}
echo '<pre>', print_r($affected_ids),'</pre>';
似乎没有必要在这里实际返回真或假。