在原始查询上从Laravel 5.2 DB返回主键

时间:2016-05-10 20:03:30

标签: php mysql laravel eloquent

在原始查询插入的情况下,有没有办法返回主键?

我有:

$sql = "insert into table(field1, field2) select (field1+1), ".$id." from table where field2=".$id." order by field3 desc limit 0,1";
$return = (DB::insert(DB::raw($sql)));

我的$ return是一个布尔值,所以在这个插入后没有选择,我可以得到这个PK吗?

1 个答案:

答案 0 :(得分:2)

我想在DB::insert来电之后无法检索PK /最后插入的ID。

正如您在Illuminate\Database\ConnectionInterface中看到的那样,insert方法会返回一个bool,因为它会从PDOstatement::excecute中的Illuminate\Database\Connection返回。

最后,在DB::getPdo()->lastInsertId()后使用DB::insert