如何使用活动记录更新多行?
我的阵列
foreach($services as $service){
$this->service_batch[]=array(
'service_id'=>$service->service_id,
'service_count'=>$service->service_count,
'id_customer'=>$service->id_customer,
'id_section'=>$service->id_section);
}
当我更新表时,我需要在WHERE
子句中定义2个参数(id_customer AND id_section),但如果我使用update_batch
,我只能指定一个参数。
如何在WHERE
子句中设置一些参数?
答案 0 :(得分:1)
来自Code Igniter Documentation - See Update Batch:
的类似内容 $data = array(
array(
'title' => 'My title' ,
'name' => 'My Name 2' ,
'date' => 'My date 2'
),
array(
'title' => 'Another title' ,
'name' => 'Another Name 2' ,
'date' => 'Another date 2'
)
);
$this->db->where($this->db->where('id', $id);
$this->db->update_batch('mytable', $data, 'title');
在您的情况下,数据将被$this->service_batch
替换为您所需列的标题。
答案 1 :(得分:0)
不太确定能够捕捉到你真正需要的东西,但我会这么做:
//controller
foreach($services as $service){
$this->model->update(
$service->service_id,
array(
'service_count'=>$service->service_count,
'id_customer'=>$service->id_customer,
'id_section'=>$service->id_section
));
}
//model
function update($id,$data){
$this->db->where('id',$id);
return $this->db->update('my_table',$data);
}