【问题标题】:How to use where condition in update batch in Codeigniter如何在 Codeigniter 的更新批处理中使用 where 条件
【发布时间】:2017-06-01 11:58:11
【问题描述】:

我想使用

更新多行
$this->db->update_batch('mytable', $data);

但不知道如何在此 update_batch 中给出条件。我可以在哪里使用这个吗?

$this->db->where('id', Multiple Ids Here); 

【问题讨论】:

标签: codeigniter codeigniter-3


【解决方案1】:

我的代码与你的不同,但它可以工作,而且很容易理解,首先将这个函数放在你的模型文件中

在模型文件中

function updatedata($tbname, $data, $parm)
    {
        return $this->db->update($tbname, $data, $parm);    
    }

在你的控制器文件中像这样使用

  $this->load->model("Your_model_name");    
  $this->Your_model_name->updatedata('mytable',$data,$your_condition_in_array);

我希望这会有所帮助,我确信此代码有效,请让我知道此代码适合您。

【讨论】:

  • 模型中的此查询仅用于更新一行,但我想更新多行。我不想使用循环来逐行更新。如果我误解或完全弄错了,请回复我。 @震惊
  • 我没有尝试过使用这个函数进行多次更新,但你可以尝试将所有数据放入数组中,并将所有数组数据放入单个数组中并将其传递给该函数$main_array=array(array(your fields with value),array(your fields with value))我希望它将起作用
【解决方案2】:

根据 update_batch() 上的 CodeIgniter 文档

$data = array(
   array(
      'title' => 'My title' ,
      'name' => 'My Name 2' ,
      'date' => 'My date 2'
   ),
   array(
      'title' => 'Another title' ,
      'name' => 'Another Name 2' ,
      'date' => 'Another date 2'
   )
);

$this->db->update_batch('mytable', $data, 'title');

第一个参数将包含表名,第二个是一个关联数组,第三个参数是 where 键。

换句话说,该数组包含要更新的字段的所有数据以及用于定义“where”条件的项目。在上述数组中,使用了与“title”键关联的值。因此更新了两条记录:一条是title = 'My title',另一条是title = 'Another title'

update_batch() 返回受影响的行数。

【讨论】:

  • 我首先阅读了该内容,但我不明白如何将我的 ids 放在我想要更新哪些行的条件下。 @Dfriend
  • 我在答案中添加了更多细节。希望它能说明发生了什么。
猜你喜欢
  • 2012-04-02
  • 2011-09-10
  • 2012-12-11
  • 2011-11-17
  • 2015-09-25
  • 1970-01-01
  • 2015-12-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多