最后插入的id与Lumen / Laravel之间的内部交易

问题描述 投票:1回答:4

如何获取最后插入的ID我使用有效的以下代码:

DB::insert("INSERT INTO members (name,email)values($name,$email)");
$lastID = DB::getPdo() -> lastInsertId();

但是下面的代码没有给我最后插入的ID。

DB::transaction(function () {
    $result = DB::insert("INSERT INTO members (name,email)values($name,$email)");
    $lastID = DB::getPdo() -> lastInsertId();
}, 5);
return $lastID;

即使我在事务外使用变量($ lastID),它仍然不起作用。我在这里错了吗?

mysql laravel transactions lumen
4个回答
2
投票

[使用查询生成器时,Laravel具有函数insertGetId,该函数插入行并返回新创建的insertGetId

id

0
投票

您可以轻松获得它:

$lastid = DB::table('members')->insertGetId(['name' => $name, 'email' => $email]);

0
投票

如果使用Model,技巧应该很简单。假设您有$last_id = DB::table('members')->insertGetId(['name => $name, 'email => $email]); 模型。因此,当您尝试插入记录时,它会返回插入的记录作为响应。

Member

希望这对您有用。


0
投票

请参阅下面的示例代码。希望对您有所帮助。

/** Insert record **/
$member = Member::create(['name' => $name, 'email' => $email])

/** your last inserted id will be in $member **/
$lastInsertedId = $member->id
© www.soinside.com 2019 - 2024. All rights reserved.