Heim > PHP-Framework > Laravel > Hauptteil

Erfahren Sie in zwei Minuten mehr über Batch-Einfügevorgänge im Laravel-Framework

烟雨青岚
Freigeben: 2020-07-18 11:54:35
nach vorne
8096 Leute haben es durchsucht

Erfahren Sie in zwei Minuten mehr über Batch-Einfügevorgänge im Laravel-Framework

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

Erfahren Sie in zwei Minuten mehr über Batch-Einfügevorgänge im Laravel-Framework

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,'兑换优惠券失败');
    }
Nach dem Login kopieren

1. Erstellen Sie ein neues leeres Array

r

r , und und Schleife Schleife in Richtung leerNummer Gruppearr und Schleife zum leeren Array ar

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][&#39;code&#39;] = $code;
    }
    /*var_dump($codeArr);
    exit;*/
    $event = new EventCode();
    $arr = $event::insert($codeArr);
    if(!$arr){
      return MyResponse::error(&#39;生成兑换码失败&#39;);
    }
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage