欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

codeigniter使用技巧批量插入数据实例方法分享

程序员文章站 2023-12-04 08:28:58
复制代码 代码如下:$sub_form = array();  $loop = 0;  $ins_loop = 0; &n...

复制代码 代码如下:

$sub_form = array();
  $loop = 0;
  $ins_loop = 0;
  $sum = count($form_datas);
  $this->logger->info('insert data total:'.$sum);
  //使用事物批量导入有助于提高插入效率
  $callstarttime = microtime(true);
  $this->db->trans_start();
  foreach ( $form_datas as $item ) {
         $loop ++;
         $sub_form[] = $item;
         if(($loop % 200) == 0 || $loop == $sum){
          $this->logger->info('insert data num:'.$loop);
    $res = $this->kb_object_instance_mdl->insert_batch($sub_form,$obj_id);
    $ins_loop ++;
    unset($sub_form);
    if(($ins_loop % 5) == 0){
     $this->logger->info('insert data trans_complete ins_loop:'.$ins_loop);
           $this->db->trans_complete();
           if($loop != $sum){
            $this->db->trans_start();
           }
    }
         }
  }
  //$this->db->trans_complete();
  $callendtime = microtime(true);
  $calltime = $callendtime - $callstarttime;
  $this->logger->info('insert data use time:'.sprintf('%.4f',$calltime));
     if($this->db->trans_status() === true){
      $this->_show_msg('1',array('data'=>'import ok'));
     }else{
      $this->_show_error('saveorupdate error');
     }