使用简单数组在codeigniter中批量更新

时间:2014-01-31 19:38:00

标签: php arrays codeigniter activerecord

我想在codeignter中进行批量更新并传递数组数据,而不是运行多个查询。

Array ( [439] => 0 [440] => 0 [441] => 0 [442] => 1 [443] => 0 )

439,440,441,442,443是id,0,0,0,1,0是需要放入活动列的值。

我可以通过循环运行它,但我想进行批量更新。

foreach($this->input->post($field_name) as $key => $value)
{
    $insert = array(
        'id'        =>  $key,
        'active'    =>  $value,
    );

    $this->db->where('id', $key)->update($table, array('active' => $value));
}   

2 个答案:

答案 0 :(得分:0)

使用foreach循环构建数组,然后使用批量更新。

编辑:我忘记了开场数组中的第二个array()。它可能需要也可能不需要。

$data = array(array());

foreach($this->input->post($field_name) as $key => $value)
{
    $push = array(
        'id'        =>  $key,
        'active'    =>  $value,
    );
array_push($data, $push);
}
$this->db->update_batch('mytable', $data, 'id');

答案 1 :(得分:0)

循环遍历数组并使用关联数组来存储数据

foreach($this->input->post($field_name) as $key => $value)
{
  $insert[] = array(
     'id'        =>  $key,
     'active'    =>  $value
  );

}   
$this->db->update_batch('yourtable', $insert, 'id');