codeigniter中的update_batch [英] update_batch in codeigniter

查看:407
本文介绍了codeigniter中的update_batch的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我用来更新所有行的代码,该行使用了update_batch函数,但无法正常工作

Here is my code that i used to update all the rows that am getting for that i used update_batch function but its not working properly

 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看起来像这样

my $users var_dump looks like this

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)

am遇到这样的错误

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

文件名:C:/wamp64/www/spectra/system/database/DB_query_builder.php

Filename: 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)看起来像这样

var_dump($data) looks like this

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


推荐答案

您未遵循文档中提到的规则< a href = https://www.codeigniter.com/user_guide/database/query_builder.html rel = nofollow noreferrer> https://www.codeigniter.com/user_guide/database/query_builder.html

You not followed the rules mentioned in documentation https://www.codeigniter.com/user_guide/database/query_builder.html

尝试一下(在循环外注意 update_batch 以及数组的制作方式)

Try this (notice update_batch outside of loop and how the array made)

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

这篇关于codeigniter中的update_batch的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆