CodeIgniter使用多个索引更新批次



CodeIgniter上的活动记录更新批次有问题。

在文件上,

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

其中"title"是更新过程的索引。是否可以对此活动记录有两个或多个索引?我已经试过了

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

它不起作用。

您可以在update_batch:之前提供额外的where

$this->db->where( "title2", "some_title" );
$this->db->update_batch( "mytable", $data, 'title' );

这将为update_batch查询提供额外的WHERE:

WHERE title2 = 'some_title' AND title IN ( '...', '...', '...' );

但是,update_batch将在每次更新时在内部重置WHERE子句。因此,作为一种变通方法,您可以提前对其进行分组,以确保在每次迭代中都应用WHERE

$chunks = array_chunk( $data, 100 );
foreach( $chunks as $chunk )
{
    $this->db->reset_query(); // To ensure there's no conflict/cache 
    $this->db->where( "title2", "some_title" );
    $this->db->update_batch( "mytable", $data, 'title' );
}

相关内容

  • 没有找到相关文章

最新更新