Rana
Rana

Reputation: 178

Update Duplicate Data when insert data in laravel

Hi I've search and try to solve the issue but failed to grab solution sorry for taking your time. I am inserting a set of data in laravel with the query builder to insert multiple data at a time.

DB::table('table')->insert(
array(
    array(
        'col1' => 'data1',
        'col2' => 'data1'
    ),
    array(
        'col1' => 'data2', 
        'col2' => 'data2'
    ),
)
);

Is there any way to check if exist the col1,col2 value in table if exist then update otherwise insert. I wanted to get return true or false from the query result if all data successfully update or inserted. I wanted to solve it with laravel query builder. Thanks

Upvotes: 0

Views: 2219

Answers (1)

Jimbolino
Jimbolino

Reputation: 398

As far as I know, the Laravel query builder does not support this. You could do a raw MySQL query:

INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;

https://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

But that is very messy and MySQL specific.

Instead i would suggest you use the Eloquent ORM:

// Retrieve the flight by the attributes, or create it if it doesn't exist...
$flight = App\Flight::firstOrCreate(['name' => 'Flight 10']);

http://laravel.com/docs/5.1/eloquent#inserting-and-updating-models

Upvotes: 1

Related Questions