如何使用基本查询在 Lumen/Laravel 中的 DB::insert 之后获取行 ID

How to get the row id after DB::insert in Lumen/Laravel with basic queries

我正在使用 Lumen 5.1 和 运行 原始 SQL 查询,使用 DB 外观。

如何在执行 insert 查询后获取行的 ID?

例如:

$rowId = DB::insert("insert into `customers` (name) values ('Tom')");
echo $rowId; // 1

然后变量 $rowId 应该包含数据库行的 ID。

我认为您可能需要获取底层 PDO 对象的句柄,然后使用它来获取新的插入 ID,就像这样

$pdo = DB::connection()->getPdo();

$result = DB::insert("insert into `customers` (name) values ('Tom')");

if ( $result )  {
    $rowId = $pdo->lastInsertId();
}

或者更简单

$result = DB::insert("insert into `customers` (name) values ('Tom')");
if ( $result )  {
    $rowId = DB::connection() -> getPdo() -> lastInsertId();
}

未测试,仅根据手册推断