laravel如何实现数据的批量插入
说明
这次接手的项目有一个头疼的模块就是批量插入的问题最终问题解决
上代码
- blade模板中的代码
<form action="{{url('demo_import')}}" method="post">
{{csrf_field()}}
a<input type="text" value="a" name="a[]"><br>
b<input type="text" value="b" name="b[]"><br>
a1<input type="text" value="a1" name="a[]"><br>
b1<input type="text" value="b1" name="b[]"><br>
a2<input type="text" value="a2" name="a[]"><br>
b2<input type="text" value="b2" name="b[]"><br>
<input type="submit" value="提交">
</form>
- 接收过来的数据显示
对应的数据库信息
- 数据库DDl信息
CREATE TABLE `v` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`title` varchar(200) NOT NULL,
`type` int(1) DEFAULT NULL,
`option_a` varchar(100) DEFAULT NULL,
`option_b` varchar(100) DEFAULT NULL,
`option_c` varchar(100) DEFAULT NULL,
`option_d` varchar(100) DEFAULT NULL,
`option_e` varchar(100) DEFAULT NULL,
`option_f` varchar(100) DEFAULT NULL,
`option_g` varchar(100) DEFAULT NULL,
`option_h` varchar(100) DEFAULT NULL,
`answer` varchar(100) DEFAULT NULL,
`score` int(11) DEFAULT NULL,
`pageid` int(11) DEFAULT NULL,
`token` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `token` (`token`) USING BTREE
) ENGINE=MyISAM AUTO_INCREMENT=135 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='知识竞赛表';
代码逻辑
- 控制器核心代码
public function demo(Request $request)
{
$input = $request->except('_token');
for ($i = 0; $i <= count($input); $i++) {
Demo::insert(['a' => $input['a'][$i], 'b' => $input['b'][$i]]);
}
}
- 结果示例
数据库显示信息如下