我同时插入多行,比如 2 行

$multiple_rows = [
    ['email' => 'taylor@example.com', 'votes' => 0],
    ['email' => 'dayle@example.com', 'votes' => 0]
];
DB::table('users')->insert($multiple_rows);

我怎样才能得到那些插入的 id。

我正在这样做,现在就这样。
foreach($multiple_rows as $row){
  DB::table('users')->insert($row);
  $record_ids[] = DB::getPdo()->lastInsertId();
}

任何其他好的方法来做到这一点,而无需每次插入单行。

最佳答案

您可以执行以下操作:

$latestUser = DB::table('users')->select('id')->orderBy('id', 'DESC')->first();

$multiple_rows = [
    ['email' => 'taylor@example.com', 'votes' => 0],
    ['email' => 'dayle@example.com', 'votes' => 0]
];

DB::table('users')->insert($multiple_rows);

$users = DB::table('users')->select('id')->where('id', '>', $latestUser->id)->get();

关于php - 如何在laravel中获取最后插入的ID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35521277/

10-16 06:13
查看更多