我如何批量执行REPLACE语句

时间:2017-03-20 11:04:11

标签: php codeigniter

在codeogniter 3中,有许多用于插入和更新的批处理操作。

示例:

/* $this->db->insert_batch(); */
$data = array(
        array(
                'title' => 'My title',
                'name' => 'My Name',
                'date' => 'My date'
        ),
        array(
                'title' => 'Another title',
                'name' => 'Another Name',
                'date' => 'Another date'
        )
);

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

=============================================== ==========

/* $this->db->update_batch(); */
$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');

但REPLACE没有批处理方法可以指导我批量替换数据

/* $this->db->replace_batch(); */

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

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

非常感谢你们......

1 个答案:

答案 0 :(得分:0)

尝试这样做。使用foreach循环。

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

,然后

foreach ($data as $key=>$value)
{
$this->db->replace('mytable', $value, 'title');
}