如何在codeigniter中获取多个插入的id

时间:2015-11-18 19:29:12

标签: php mysql ajax codeigniter fullcalendar

我正在编写一个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?

1 个答案:

答案 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>';

似乎没有必要在这里实际返回真或假。