我需要获得1
(已插入记录)或2
(记录已更新)。如何使用Laravel完成这项工作?我无法在他们的文档中找到有关此内容的任何信息。
DB::insert('insert into ratings
(owner_id, game_id, rating) values (?, ?, ?)
on duplicate key update rating = values(rating)',
[
(int)$body['user'], (int)$gameId, (int)$body['amount']
]);
我知道我可以这样得到pdo:
$pdo = DB::connection()->getPdo();
但我认为这不会有帮助......
答案 0 :(得分:0)
您需要使用似乎返回受影响行数的函数affectingStatement
...
$res = DB::affectingStatement('insert into ratings
(owner_id, game_id, rating) values (?, ?, ?)
on duplicate key update rating = values(rating)', [
(int)$body['user'],
(int)$gameId,
(int)$body['amount']
]);
对我来说,当一行更新时返回2,插入一行时返回1,按预期失败时返回0。