Php laravel原始查询最后\u插入\u id

Php laravel原始查询最后\u插入\u id,php,laravel,last-insert-id,Php,Laravel,Last Insert Id,使用laravel的原始查询时,是否有方法获取上次插入id DB::query('INSERT into table VALUES('stuff')) 这将返回true或false。是否有一种方法可以使用Laravel中的原始查询获取最后一个插入id?尝试DB::Query('SELECT last\u insert\u id()') (这是特定于DB产品的,我给出的示例是MySQL/MariaDB。)插入具有自动递增ID的记录?您可以使用insert\u get\u id方法插入记录并检索id

使用laravel的原始查询时,是否有方法获取上次插入id

DB::query('INSERT into table VALUES('stuff'))

这将返回true或false。是否有一种方法可以使用Laravel中的原始查询获取最后一个插入id?

尝试
DB::Query('SELECT last\u insert\u id()')


(这是特定于DB产品的,我给出的示例是MySQL/MariaDB。)

插入具有自动递增ID的记录?您可以使用insert\u get\u id方法插入记录并检索id:

$id=DB::table('users')->insert\u get\u id(数组('email'=>)example@gmail.com'));
注意:insert_get_id方法要求自动递增列的名称为“id”。

对于那些可能对laravel 4有相同问题的人来说,与@haso keric的回答相比,语法略有变化

它是:$id=DB::table('users')->insertGetId(数组('email'=>)example@gmail.com)

对于Laravel 4:

$id=DB::select('select LAST_INSERT_id()');

说明:


在网站等使用可爱的Laravel 4 PHP框架时,对于原始查询,您应该参考“DB::Select”函数而不是“DB::Query”。因为“DB::Query”引发了一个错误。我相信这是因为它在v3中已被弃用,或者不存在平原。您的,Smith。

只需使用底层PDO实例:

DB::connection()->getPdo()->lastInsertId();

在网站等使用可爱的Laravel 4 PHP框架时,对于原始查询,您应该参考“DB::Select”函数而不是“DB::Query”。因为“DB::Query”会抛出一个错误。您的,Smith。在撰写本文时,这也适用于lumen:)(因此我假设Laravel 5.4也适用)我想知道为什么所有的投票都会接受这一点,当问题明确询问原始查询时。尽管我同意人们不应该使用原始查询来实现这一点。
DB::connection()->getPdo()->lastInsertId();