codeigniter 活动记录批量更新 where where 子句等于数组索引

codeigniter active record batch update where where clause equals array index

我在 codeigniter 中有一组 post 数据($data),看起来像附件中的图像。

数据库看起来像:

编号:3 值:37.10119357072203

-

编号:4 值:-122.06634521484374

我想根据与数据库 'id' 字段匹配的数组键将数组值插入到 'val' 字段中。我如何使用 codeigniter 的 update_batch 执行此操作。我的模型目前是:

public function edit_config($data){
        $this->db->update_batch('extra_config', $data,'val');
    }

但我收到错误消息:

One or more rows submitted for batch updating is missing the specified index.

你必须准备你的数据,不从传入请求中触及它是不正常的..

public function edit_config($data){
     $updateData = array();
     foreach($data['val'] as $key=>$value) {
         $updateData[] = array('id'=>$key, 'val'=>$value);
     }

     $this->db->update_batch('extra_config', $updateData,'id');
}