【问题标题】:update_batch in codeignitercodeigniter 中的 update_batch
【发布时间】:2017-03-04 09:05:40
【问题描述】:

这是我用来更新我使用 update_batch 函数但它不能正常工作的所有行的代码

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

}

我的 $users var_dump 看起来像这样

C:\wamp64\www\spectra\application\models\Project_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:\wamp64\www\spectra\application\models\Project_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

【问题讨论】:

标签: php codeigniter updates


【解决方案1】:

您没有遵守文档https://www.codeigniter.com/user_guide/database/query_builder.html中提到的规则

试试这个(注意循环外的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');

【讨论】:

  • 这里得到未定义的索引 user_id
  • 我已经对答案进行了细微的修改,现在进行测试,如果仍然无法正常工作,则从外部循环显示您的 var_dump($data) 结果
  • 显示来自外部循环的var_dump($data) 结果
  • 现在你的var_dump($query) 返回什么。最后你确定你保持update_batch 外循环吗?还要检查是否存在另一个变量名$data,如果存在则更改变量名
  • yaa 它在循环之外
猜你喜欢
  • 1970-01-01
  • 2017-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-11
  • 1970-01-01
  • 2021-09-23
相关资源
最近更新 更多