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

分类:PHP_Python| 发布:佚名| 查看: | 发表时间:2014/1/9
代码如下:

$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');
     }
365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/archives/873.html