Yii2 批量插入
Posted
技术标签:
【中文标题】Yii2 批量插入【英文标题】:Yii2 Batch Insert 【发布时间】: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();
但我猜它没有插入。第二个参数需要设置我无法做到的数组。
请告诉我可以做什么
谢谢
【问题讨论】:
【参考方案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();
【讨论】:
以上是关于Yii2 批量插入的主要内容,如果未能解决你的问题,请参考以下文章