update_batch in codeigniter



这是我用来更新所获得的所有行的代码

 public function edit_project_involved($users)
{
    foreach ($users as $v_user) {
    $data=array('involved'=>1);
    $v=$this->db->where('user_id',$v_user);
    $query=$this->db->update_batch('tbl_users',$data,$v);
    }
    if($query)
    {
        return true;
    }
}

我的$用户var_dump看起来像

C:wamp64wwwspectraapplicationmodelsProject_model.php:536:
array (size=3)
0 => string '40' (length=2)
1 => string '42' (length=2)
2 => string '37' (length=2)

正在遇到这样的错误

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

文件名:c:/wamp64/www/spectra/system/database/db_query_builder.php

行号:2010

我的桌子看起来像这样

user_id     username        involved
    1         admin           0
    36        siraj           0
    37        faizal          0
    38        nesru           0
    40        jaseer          0
    42        maltu           0
    43        shahul          0     
    44        samsheera       0

var_dump($ data)看起来像

C:wamp64wwwspectraapplicationmodelsProject_model.php:544:
array (size=3)
0 => 
  array (size=2)
    'user_id' => string '40' (length=2)
    'involved' => int 1
1 => 
  array (size=2)
    'user_id' => string '42' (length=2)
    'involved' => int 1
2 => 
  array (size=2)
    'user_id' => string '37' (length=2)
    'involved' => int 1

您没有遵循文档中提到的规则

尝试这个(请注意 update_batch循环外以及阵列如何制作)

foreach ($users as $v_user) {
  $data[] = array(
   'user_id' => $v_user,
   'involved'=> 1
  );
}
$query = $this->db->update_batch('tbl_users',$data,'user_id');

最新更新