Yii2 批量插入

Yii2 Batch Insert

我想一次插入多列。我正在从 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();

但我猜它没有插入。第二个参数需要是一组数组,我做不到。

请告诉我可以做什么

谢谢

似乎你的行分配有误尝试使用这种方式

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();