Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在codeigniter中获取多个插入的id_Php_Mysql_Ajax_Codeigniter_Fullcalendar - Fatal编程技术网

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

Php 如何在codeigniter中获取多个插入的id,php,mysql,ajax,codeigniter,fullcalendar,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, late

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

在您的案例中,您实际上正在执行多个独立的查询,因此您可以获取最后一个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>';
$infected_id=array();
foreach(。。。。
$query=。。。。。
如果($this->db->infected_rows()>0)
$infected_id[]=$this->db->insert_id();
}
回显“”,打印($受影响的ID),“”;

这里似乎不需要实际返回true或false。

这只是返回最后一行为什么?foreach($infected_id as$infected_id){$fetchQuery='SELECT*FROM pickupManagement WHERE pickup_id=“”.$infected_id.”;$querys=$this->db->query($fetchQuery);}if($querys->num rows()>0){foreach($querys->result()作为$results){$data[]=$results;}返回$data;}将
$infected_ids=array();
放在
foreach
循环之前。