Laravel 5.2 中的批量插入

Posted

技术标签:

【中文标题】Laravel 5.2 中的批量插入【英文标题】:Batch insert in Laravel 5.2 【发布时间】:2017-06-11 19:06:12 【问题描述】:

我正在使用一个 API 进行大量计算,最后有一个大的 Foreach 循环,几乎 100 个数据库字段。

在每次迭代中,我都会在数据库中插入数据。我想在最后插入一次数据(像在 CodeIgniter 中那样批量插入)。

任何人都知道如何在迭代结束时插入所有数据。而不是每次迭代都会在数据库中插入行。

我想在循环结束时插入数据。任何帮助或想法表示赞赏。

【问题讨论】:

这正是我也在寻找的。 .. github.com/mavinoo/laravelBatch 【参考方案1】:

使用insert() 方法进行批量插入。首先,用这种结构构建一个数组:

$data = [
    ['name' => 'John', 'age' => 25],
    ['name' => 'Maria', 'age' => 31],
    ['name' => 'Julia', 'age' => 55],
];

然后使用 Eloquent 模型插入数据:

Model::insert($data);

或使用查询生成器:

DB::table('table_name')->insert($data);

【讨论】:

Alexey Mezenin 的回答应该被标记为解决方案 插入后将能够获得带有响应的 Autoincrement Id

以上是关于Laravel 5.2 中的批量插入的主要内容,如果未能解决你的问题,请参考以下文章

用于原始查询的 Laravel 批量插入

Laravel 数据透视表批量插入多个字段

Laravel 批量插入许多具有相同形式的条目

laravel如何实现批量插入

PHP框架 Laravel Eloquent ORM 批量插入数据,怎么实现

如何使用 Laravel 4.2 在单个查询(不是 for 查询循环)中批量插入或更新