在这个例子中..我如何简化和加快数据库中数据的更新和插入?
//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个数据......需要一段时间才能完成此过程..提前感谢.. =)
答案 0 :(得分:0)
$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;的列。条件。