使用laravel的原始查询时,有没有办法获得last_insert_id
?
DB::query('INSERT into table VALUES ('stuff') ')
返回true或false。有没有办法在Laravel中使用原始查询获取last_insert_id?
答案 0 :(得分:17)
对于那些可能对laravel 4提出相同问题的人来说,只有@ haso-keric的回复会有轻微的语法变化。
是:
$id = DB::table('users')->insertGetId(array('email' => 'example@gmail.com')
答案 1 :(得分:7)
试试DB::Query('SELECT LAST_INSERT_ID()')
?
(这是DB产品特定的,我给出的示例是针对MySQL / MariaDB的。)
答案 2 :(得分:3)
对于Laravel 4:
$id = DB::select('SELECT LAST_INSERT_ID()');
说明:
when using the lovely Laravel 4 PHP framework for websites etc, you should refer to the "DB::Select" function instead of "DB::Query" for raw queries. As "DB::Query" throws an error. I believe this is because its deprecated from v3, or plain doesn't exist. Yours, Smith.
答案 3 :(得分:2)
插入具有自动递增ID的记录?您可以使用insert_get_id方法插入记录并检索ID:
$ id = DB :: table('users') - > insert_get_id(array('email'=>'example@gmail.com')); 注意:insert_get_id方法要求自动递增列的名称为“id”。
答案 4 :(得分:0)
只需使用基础PDO实例:
DB::connection()->getPdo()->lastInsertId();