You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter3中遍历多维数组更新MySQL表报错求助

解决CodeIgniter3中多维数组遍历更新MySQL的问题

你的问题出在直接将包含数组的$data传给update方法——CodeIgniter会尝试把这些数组转成字符串,导致报错。因为update()方法需要的是单条记录的键值对(值是字符串/数字,不是数组),而你当前的$data里每个字段都是一个数组。

正确的处理方式

遍历$invoice_id时,根据循环索引取出对应位置的字段值,组装成单条记录的更新数组,再执行更新:

foreach ($invoice_id as $key => $value) {
    // 组装单条记录的更新数据,取对应索引的字段值
    $update_data = array(
        'date' => $data['date'][$key],
        'commercial_invoice_number' => $data['commercial_invoice_number'][$key],
        'payment_type' => $data['payment_type'][$key]
    );

    $this->db->where('invoice_id', $value);
    $this->db->update('invoice', $update_data);

    echo $this->db->last_query();
}

关键说明

  • 不需要更新invoice_id字段,因为它是WHERE条件的匹配值
  • 确保$invoice_id、date、commercial_invoice_number、payment_type这几个数组的长度完全一致,避免索引越界(可以提前用count()校验)

内容的提问来源于stack exchange,提问作者Madhu S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 01:10:34