In der täglichen Entwicklung gibt es ziemlich viele Stapeleinfügungsvorgänge. Ich erinnere mich, dass ich vor langer Zeit noch SQL-Einfügungen in einer Schleife schrieb, aber vom Projektmanager auf den Boden gedrückt und gerieben wurde. Nun, die Leistung ist in Ordnung, wenn sie nicht verwendet wird. Wenn die Leistung zum Engpass wird, werden die Codeoptimierung und die Datenbankoptimierung die Hauptlast tragen.
Öffnen wir ohne weiteres den Code!
1. Schauen Sie sich zunächst das Laravel5.1-Handbuch an
Wie auf dem Bild zu sehen ist: Laravel bietet die Einfügemethode des Einfügens eines Arrays, und das heißt, wir können direkt insert($array) verwenden, um den Batch-Einfügevorgang zu implementieren
2. Verwenden Sie zuerst die get()-Abfrage von Laravel, um das Array-Objekt abzurufen, und Fügen Sie dann den Vorgang stapelweise ein:
$ret = []; $create_red = new create_red(); foreach($arr3 as $v){ $delayDays = $v->delayDays; $workDays = $v->workDays; //获取当天时间戳的0点 $now = strtotime(date('Y-m-d',time())); ; $start = $now + $delayDays*86400; $start_at = date("Y-m-d H:i:s",$start); $end = $now + $delayDays*86400 + $workDays*86400; $end_at = date('Y-m-d H:i:s',$end); $created_at = date("Y-m-d H:i:s",$now); $ret[] = [ 'uid'=>$uid, 'status'=>1, 'title'=>$v->title, 'desc'=>$v->desc, 'discount'=>$v->discount, 'minprice'=>$v->minprice, 'imgurl'=>$v->imgurl, 'start_at'=>$start_at, 'end_at'=>$end_at, ]; } //往数据库批量插入数据 $result = $create_red::insert($ret); if(!$result){ DB::rollBack(); return MyResponse::error(9006,'兑换优惠券失败'); }
1. Erstellen Sie ein neues leeres Array
rr
3. Stapeleinfügung nach Stapelgenerierung von Einlösecodes Zuerst eingeben der Code:$num = 200; $codeArr = []; for($i=0;$i<$num;$i++){ $code = EventCode::rand_str(8); $codeArr[$i]['code'] = $code; } /*var_dump($codeArr); exit;*/ $event = new EventCode(); $arr = $event::insert($codeArr); if(!$arr){ return MyResponse::error('生成兑换码失败'); }
1. Erstellen Sie ein neues leeres Array 2. Schleife zum Generieren des Einlösungscodes und schreiben Sie ihn in das Array
3 Nachdem das Array normal angezeigt wurde, verwenden Sie zum Einfügen 4. Der Einfügeeffekt ist auch hier in Ordnung.
Die Verwendung von Laravels eigener Einfügung ist immer noch möglich möglich, aber der Autor fügt nur einen kleinen Teil ein und hat den Leistungsaspekt nicht gezielt umgesetzt. Wenn ich in Zukunft etwas finde, werde ich es aufschreiben und mit allen teilen.
Empfohlenes Tutorial: „
Laravel“
Das obige ist der detaillierte Inhalt vonErfahren Sie in zwei Minuten mehr über Batch-Einfügevorgänge im Laravel-Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!