如何使用codeigniter批量更新/插入sql?

时间:2018-01-31 01:47:15

标签: php sql database codeigniter sql-update

在这个例子中..我如何简化和加快数据库中数据的更新和插入?

//if count($arr_list['sample_element1'] is 500+++ or more records

$i =0;
while ($i < count($arr_list['sample_element1'])) {

$update_db= array('column1' => $arr_list['sample_element1'][$i],'column2' => $arr_list['sample_element2'][$i]);

$this->db->update('sample_table',$update_db);

$i++;
}

如果要保存的记录超过1000个数据......需要一段时间才能完成此过程..提前感谢.. =)

2 个答案:

答案 0 :(得分:0)

使用batch_update

$this->db->update(table_name,array,where_key_word);

此处 table_name =您的表名

数组 =包含多个关联数组的数组

where_key_word =应在where where条件中使用的列

还阅读了this question thread for more information

批量更新数千个元素可能会产生性能问题。更好地分解它们并通过较小的批处理更新。也可以使用事务,以便在任何更新失败时可以回滚整个更新过程

答案 1 :(得分:0)

以@ AL-zami的回答你正在寻找这个

$data = [];
$this->db->trans_start();
foreach($arr_list as $item)
{
    $data[] = [
        'column1' => $item['element1'],
        'column2' => $item['element2'],
        'column3' => $item['element3']
    ];
}
$this->db->update_batch('mytable', $data, 'column1');
$this->db->trans_complete();

其中&lt; column1&#39;是用于&#34; WHERE&#34;的列。条件。