我想在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));
}
答案 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');