在laravel中插入数据时更新重复数据

时间:2015-06-26 23:37:54

标签: php laravel

您好我已经搜索并尝试解决问题,但未能抓住解决方案抱歉花时间。 我在laravel中使用查询构建器插入一组数据,以便一次插入多个数据。

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

有没有办法检查表中是否存在col1,col2值,如果存在则更新,否则插入。如果所有数据都成功更新或插入,我希望从查询结果中返回truefalse。我想用laravel查询构建器来解决它。 感谢

1 个答案:

答案 0 :(得分:1)

据我所知,Laravel查询构建器不支持此功能。 你可以做一个原始的MySQL查询:

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

但这非常混乱,而且具体针对MySQL。

相反,我建议您使用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