我插入批量插入laravel 5像这样:
$data = array(
array('name'=>'Jack', 'age'=>'24'),
array('name'=>'Tom', 'age'=>'37'),
//...
);
Users::insert($data);
知道如何获取最后一个插入的id吗?
你可以双向选择
使用雄辩模型
$user = new Reports();
$user->email= 'johndoe@example.com';
$user->save();
$lastInsertId = $user->id;
或者
使用查询生成器
$lastInsertId = DB::table('reports')->insertGetId(['email' => 'johndoe@example.com']);
因此,在批量插入数据时,不能使用插入GetId()
。所以如果你想保持数据库的完整性,你可以这样做:
$lastRow = array_pop($data); // Cutting off last item from an array
Users::insert($data);
$lastId = Users::insertGetId($lastRow);
我知道这是相当愚蠢的解决方案,它将创建2个查询,而不是一个,但是如果你找不到更好的,你可以使用它。
可供替代的
您也可以尝试以下方法:
$lastId = DB::select('select last_insert_id()');
这可能会起作用,但不应影响DB的完整性:
对于LAST_INSERT_ID(),最近生成的ID在服务器中按每个连接进行维护。它不会被其他客户端更改。如果使用非magic值(即非NULL且非0的值)更新另一个AUTO_INCREMENT列,则该值甚至不会更改。
我正在执行数据库操作与"雄辩ORM在Laravel"。我只想取数据库中最后一个插入id(不是最大id)。 我在laravel Eloquent ORM中搜索到最后一个插入标识,我得到了以下链接(Laravel,使用Eloquent获取最后一个插入标识),即从以下函数获取最后一个插入标识
问题内容: 我想在Hibernate中获取最后插入的值的ID。 搜索后: 但是以下代码给了我这个错误: java.lang.ClassCastException:无法将java.math.BigInteger强制转换为java.lang.Long 请分享您的想法! 解 不要忘记导入: 导入java.math.BigInteger; 问题答案: 错误很明显。它回来了而不是 您必须将其分配给。从中得到
问题内容: 我正在将PHP PDO与PostgreSQL一起用于新项目。 给定以下功能,如何返回刚刚插入的行的ID?它不像现在那样工作。 问题答案: 从手册: 根据基础驱动程序,返回最后插入的行的ID或序列对象的最后一个值。例如,PDO_PGSQL()要求您为name参数指定序列对象的名称。 应该是这样的: [编辑]更新文档链接
问题内容: 我正在使用PHP中的mvc结构,我想检索最后插入的行ID。 我创建了以下sql代码: 但不幸的是我遇到了这个错误: 我也尝试过此堆栈链接,但不适用于我,因此如果您能帮助我获取ID,我将非常高兴。 我也在这里共享我的controller.php文件。 问题答案: 你快到了。 如果您查看lastInsertId的手册页,则会在数据库句柄上调用它- 您当前正在语句中对其进行调用。 您只需要致
问题内容: 我有一个查询,我想插入最后一个ID。字段ID是主键,并且是自动递增的。 我知道我必须使用以下语句: 该语句适用于如下查询: 但是,如果我想使用以下语句获取ID: 我收到此错误: 我究竟做错了什么? 问题答案: 那是因为那是SQL函数,而不是PHP。您可以使用。 喜欢: 如果要使用SQL而不是PDO API进行操作,则可以像普通的select查询一样进行操作:
问题内容: 我目前正在使用以下代码在表中插入数据: 我想返回插入的最后一个ID,但我不知道如何获取它。 亲切的问候! 问题答案: 后 保存 ,应该是最后的ID插入。 可以这样使用。 对于更新的laravel版本,请尝试此