在使用Laravel的原始查询时,是否有一种方法可以获取last_insert_id
?
DB::query('INSERT into table VALUES ('stuff') ')
这将返回true或false。在Laravel中使用原始查询方式,有没有一种方法可以获取last_insert_id?
在使用Laravel的原始查询时,是否有一种方法可以获取last_insert_id
?
DB::query('INSERT into table VALUES ('stuff') ')
这将返回true或false。在Laravel中使用原始查询方式,有没有一种方法可以获取last_insert_id?
为了让那些可能有同样问题的Laravel 4用户受益,与@haso-keric的回答相比,语法略有变化。
现在是这样写:
$id = DB::table('users')->insertGetId(array('email' => 'example@gmail.com')
DB::Query('SELECT LAST_INSERT_ID()')
吗?(这是针对DB产品的特定示例,我所提供的示例适用于MySQL/MariaDB。)对于Laravel 4:
$id = DB::select('SELECT LAST_INSERT_ID()');
解释:
当使用优美的PHP框架Laravel 4制作网站等时,您应该使用“DB :: Select”函数而不是“DB :: Query”进行原始查询。因为“DB :: Query”会抛出错误。我相信这是因为它已经从v3中弃用或者根本不存在了。你的,史密斯。
如何插入一条具有自增ID的记录?您可以使用insert_get_id方法来插入一条记录并检索ID:
$id = DB::table('users')->insert_get_id(array('email' => 'example@gmail.com')); 注意:insert_get_id方法期望自增列的名称为"id"。
只需使用底层的PDO实例:
DB::connection()->getPdo()->lastInsertId();