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