A-A+
codeigniter使用技巧批量插入数据实例方法分享
CI批量插入数据,CodeIgniter是一个小巧但功能强大的 PHP 框架,作为一个简单而“优雅”的工具包,它可以为 PHP 程序员建立功能完善的 Web 应用程序。
- $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');
- }