【问题标题】:Yii2 Batch InsertYii2 批量插入
【发布时间】:2020-10-24 02:37:17
【问题描述】:

我想一次插入多列。我从 api 获取数据,我想一次插入数千行。我该怎么做?

我尝试了以下

 if(is_array($did))
                {
                    $row=array();
                    foreach ($did as $di) 
                    {
                    
                      $row[]=$di['src'];
                      $row[]=$di['dst'];
                      $row[]=$di['disposition'];
                      $row[]=$di['cost'];
                      $row[]=$di['date'];
                       
                    }
                }
                Yii::$app->db->createCommand()->batchInsert('call_records', ['source', 'destination','disposition','cost','date_added'], [$row])->execute();

但我猜它没有插入。第二个参数需要设置我无法做到的数组。

请告诉我可以做什么

谢谢

【问题讨论】:

    标签: activerecord yii2 batch-insert


    【解决方案1】:

    好像你有错误的行分配尝试使用这种方式

    if (is_array($did)) {
         $row=array();
         foreach ($did as $di) {
            
              $row[]= [
                'source'        => $di['src'], 
                'destination'   => $di['dst'],
                'disposition'   => $di['disposition'],
                'cost'          => $di['cost'],
                'date_added'    => $di['date'],
              ];
                       
        }
    }
    
    $columns = ['source', 'destination','disposition','cost','date_added'];
    
    Yii::$app->db->createCommand()
        ->batchInsert('call_records', $columns, $row)
        ->execute();
    

    【讨论】:

      猜你喜欢
      • 2017-01-28
      • 2015-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-17
      • 1970-01-01
      • 1970-01-01
      • 2011-02-15
      相关资源
      最近更新 更多