Maison > cadre php > Laravel > le corps du texte

Découvrez les opérations d'insertion par lots dans le framework Laravel en deux minutes

烟雨青岚
Libérer: 2020-07-18 11:54:35
avant
8096 Les gens l'ont consulté

Découvrez les opérations d'insertion par lots dans le framework Laravel en deux minutes

Dans le développement quotidien, il y a pas mal d'opérations d'insertion par lots. Je me souviens qu'il y a longtemps, j'écrivais encore une insertion SQL en boucle, mais j'ai été pressé au sol et frotté par le chef de projet. Eh bien, les performances sont bonnes lorsqu'elles ne sont pas utilisées. Si les performances deviennent un goulot d'étranglement, alors l'optimisation du code et l'optimisation de la base de données en feront les frais.

Sans plus attendre, ouvrons le code !

1. Tout d'abord, consultez le manuel de laravel5.1

Découvrez les opérations dinsertion par lots dans le framework Laravel en deux minutes

Comme le montre l'image : laravel fournit la méthode d'insertion. d'insérer un tableau, et c'est-à-dire que nous pouvons directement insert($array) pour implémenter l'opération d'insertion par lots

2. Utilisez d'abord la requête get() de laravel pour obtenir l'objet tableau, et puis insérez par lots l'opération

$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,'兑换优惠券失败');
    }
Copier après la connexion

1 Créez un nouveau tableau vide

2 Parcourez le a interrogé. rr , et et boucle boucle vers videnuméro groupearr, et boucle vers le tableau vide ret pour former le format de tableau correct

3. Instanciez la classe de modèle de la table de données

4 Utilisez la méthode model::insert($array) pour l'insérer. lots

5. Le résultat est OK, lot Insertion réussie

3. Insertion par lots après génération par lots de codes de remboursement

Entrez d'abord le 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;);
    }
Copier après la connexion

1. Créez un nouveau tableau vide

2. Boucle pour générer le code de rachat et écrivez-le dans le tableau

3. le tableau. Une fois que le tableau s'affiche normalement, utilisez la méthode insert() pour insérer

4. L'effet d'insertion ici est également OK

L'utilisation du propre insert de Laravel pour obtenir l'efficacité de l'insertion par lots est toujours. possible, mais l’auteur n’en insère qu’une petite quantité et n’a pas spécifiquement mis en œuvre l’aspect performance. Si je trouve quelque chose à l’avenir, je l’écrirai et le partagerai avec tout le monde.

Tutoriel recommandé : "Laravel"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal