Bel*_*Not 3 php laravel laravel-5.2
我在同一时间插入多行,比如2行
$multiple_rows = [
['email' => 'taylor@example.com', 'votes' => 0],
['email' => 'dayle@example.com', 'votes' => 0]
];
DB::table('users')->insert($multiple_rows);
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得那些插入的ID.
我这样做,现在就这样.
foreach($multiple_rows as $row){
DB::table('users')->insert($row);
$record_ids[] = DB::getPdo()->lastInsertId();
}
Run Code Online (Sandbox Code Playgroud)
任何其他好的方法,每次都不插入单行.
您可以执行以下操作:
$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();
Run Code Online (Sandbox Code Playgroud)
如果您确实需要所有插入的ID
$dataArray = [
['name' => 'ABC'],
['name' => 'DEF']
];
$ids = [];
foreach($dataArray as $data)
{
$ids[] = DB::table('posts')->insertGetId($data);
}
Run Code Online (Sandbox Code Playgroud)
为了获得带有大量插入的所有id,我认为一个好方法是首先获取表中的最后一个id,进行大量插入并获取最后的id。从理论上讲,除非有其他连接插入,否则它们必须遵循。为了避免解决方案是交易。
更新资料
另请阅读文档
| 归档时间: |
|
| 查看次数: |
4623 次 |
| 最近记录: |