Error in getting the last inserted ID of a query using batch insert in CodeIgniter
codeigniter, mysql, php
Solution
You will need to do something like this,
$insertIds = array();
for ($x = 0; $x < sizeof($filtername); $x++) {
$orders = array(
'poid' => null,
'order_id' => $poid,
'item_desc' => $filtername[$x],
'item_qty' => $filterquantity[$x],
'item_price' => $filterprice[$x],
'total' => $filtertotal[$x],
'cash_on_delivery' => $val_delivery,
'is_check' => $val_check,
'bank_transfer' => $val_transfer,
'transaction_date' => $dateorder
);
$this->db->insert('po_order', $orders);
$insertIds[$x] = $this->db->insert_id(); //will return the first insert array
}
print_r($insertIds); //print all insert ids
Problem
How can I get the last inserted ID of a query using the batch insert in CodeIgniter. I used the code `$this->db->insert_id()` but it returns the ID of my first inserted array. I can't get the last insert. Here's what I did: ``` for ($x = 0; $x < sizeof($filtername); $x++) { $orders[] = array( 'poid' => null, 'order_id' => $poid, 'item_desc' => $filtername[$x], 'item_qty' => $filterquantity[$x], 'item_price' => $filterprice[$x], 'total' => $filtertotal[$x], 'cash_on_delivery' => $val_delivery, 'is_check' => $val_check, 'bank_transfer' => $val_transfer, 'transaction_date' => $dateorder ); } $this->db->insert_batch('po_order', $orders); echo $this->db->insert_id(); //will return the first insert array ``` I can't spot where's my error. My last option is to get it using a query. I also did `mysql_insert_id()` but always returns to 0.