gpt4 book ai didi

php - 在 CodeIgniter 中使用批量插入获取查询的最后插入 ID 时出错

转载 作者:可可西里 更新时间:2023-11-01 07:52:49 31 4
gpt4 key购买 nike

如何使用 CodeIgniter 中的批量插入获取查询的最后插入 ID。我使用代码 $this->db->insert_id() 但它返回我第一个插入数组的 ID。我无法获取最后插入的内容。

这是我做的:

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

我无法发现我的错误在哪里。我的最后一个选择是使用查询来获取它。我也执行了 mysql_insert_id() 但总是返回 0。

最佳答案

我认为最好的方法是使用批量插入而不是循环中的单个插入以提高性能,但要获取最后的插入 ID,请添加第一个插入 ID 和受影响的行。

$this->db->insert_batch('po_order', $orders);
$total_affected_rows = $this->db->affected_rows();
$first_insert_id = $this->db->insert_id();

$last_id = ($first_insert_id + $total_affected_rows - 1);

关于php - 在 CodeIgniter 中使用批量插入获取查询的最后插入 ID 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18372537/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com