Codeigniter tips: how to insert data instances in batches. Copy the code as follows: $ sub_formarray (); $ loop0; $ ins_loop0; $ sumcount ($ form_datas); $ this-logger-info (insertdatatotal :. $ sum); using batch transaction import helps
The code is as follows:
$ Sub_form = array ();
$ Loop = 0;
$ Ins_loop = 0;
$ Sum = count ($ form_datas );
$ This-> logger-> info ('Insert data total: '. $ sum );
// Using batch transaction import helps improve insertion efficiency
$ 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 ');
}
The http://www.bkjia.com/PHPjc/633585.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/633585.htmlTechArticle code is as follows: $ sub_form = array (); $ loop = 0; $ ins_loop = 0; $ sum = count ($ form_datas ); $ this-logger-info ('Insert data total :'. $ sum); // it is helpful to use batch transaction import...