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

时间:2015-11-25 15:26:18

标签: php mysql codeigniter activerecord batch-processing

我在codeigniter中有一系列发布数据($ data),看起来像附加图像。

enter image description here

一个看起来像的数据库:

id:3 val:37.10119357072203

-

id:4 val:-122.06634521484374

我想将数组值插入' val'基于与数据库匹配的数组键的字段' id'领域。如何使用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.

enter image description here

1 个答案:

答案 0 :(得分:1)

您必须准备好不正常的数据,不要从传入的请求中触摸它。

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');
}