我是laravel的新手并尝试从此查询中获取最后插入的ID:
DB::select("INSERT INTO current_survey (`name`, `created_by`, `description`) SELECT `name`, `created_by`, `description` FROM survey WHERE id=survey_id");
这个查询运作良好,任何人都可以建议我在laravel中如何实现这一点?
由于
答案 0 :(得分:5)
尝试一次: -
$id = DB::getPdo()->lastInsertId();
答案 1 :(得分:3)
根据laravel文档
https://laravel.com/docs/5.8/queries#inserts
如果表具有自动递增的ID,请使用insertGetId方法插入一条记录,然后检索ID:
$id = DB::table('users')->insertGetId(
['email' => 'john@example.com', 'votes' => 0]
);
答案 2 :(得分:0)
试试这个:
$query = DB::statement("INSERT INTO current_survey (`name`, `created_by`, `description`) SELECT `name`, `created_by`, `description` FROM survey WHERE id=survey_id");
//your inserted id
$last_id = $query->id;