Batch insert in Laravel 5.2

Irfan Ali picture Irfan Ali · Jan 26, 2017 · Viewed 13.1k times · Source

I am using a API's with lot's of calculation almost 100 database fields at the end with a big Foreach loop.

In every iteration i insert data in database. I want to insert data in once at the end (Batch Insert like in CodeIgniter).

Any body have idea how to insert all data at the end of iteration. instead of every iteration it insert row in database.

I want to insert data at the end of loop. Any help or idea appreciated.

Answer

Alexey Mezenin picture Alexey Mezenin · Jan 26, 2017

Use insert() method for bulk insertion. First, build an array with this structure:

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

Then insert the data using Eloquent model:

Model::insert($data);

Or using query builder:

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