Yii2如何批量添加数据


Posted in PHP onMay 17, 2016

批量添加这个操作,在实际开发中经常用得到,今天小编抽空给大家整理些有关yii2批量添加的问题,感兴趣的朋友一起看看吧。

在上篇文章给大家介绍了关于浅析Yii2 gridview实现批量删除教程,当然,着重点在于怎么去操作gridview了,今儿我们来好好谈谈yii2如何批量添加数据?

有同学嚷嚷了,这还不简单,我foreach一循环,每个循环里面直接把数据插入到数据库,简单粗暴完事!我擦嘞,哥,你要是跟我在一个公司,我觉得第二天见到你的概率可就不大了!

话不多说,说多了你在骂我,我们步入正题,先看一个简单到小学生都认识的表结构

//test 
id 
name

我们现在就是要在yii2中对这张数据表批量插入10条数据

我们想要的方式肯定是下面这样的,一条sql多么干脆直接了事

insert into test (name) values ('zhangsan'), ('lisi');

分析都分析完了,好吧,赶紧看看具体实现

//假如 $names = ['zhangsan', 'lisi']; 
$data = []; 
foreach ($names $k => $v) { 
$data[] = [$v]; 
} 
Yii::$app->db->createCommand()->batchInsert('test', ['name'], $data)->execute();

我相信很多人都是冲着AR能不能实现批量插入来的,理由无非就是更安全更方便操作呗。但是官方手册貌似没有,没有,没有。。。心都碎了,竟然没有,至少我没有找到,你找到了请点击原文找到我并联系我,我也si分的需要方法啊。

不过不巧的是,我找到一个跟AR相关联的操作方法,我们共同分享参考一下看看具体怎么回事

假设有一个Post类的数组 $models,你就可以这样操作

use yii\helpers\ArrayHelper; 
$rows = []; 
foreach ($models as $model) {
if ($model->validate()) { 
$rows[] = $model->attributes;
} 
} 
$rows = ArrayHelper::getColumn($models, 'attributes'); 
$postModel = new Post; 
Yii::$app->db->createCommand()->batchInsert(Post::tableName(), $postModel->attributes(), $rows)->execute(); 
//当然啦,上面给出的是插入所有的字段,但事实往往事与愿违,也简单,稍作调整即可 
$rows[] = [ 
'title' => $model->title, 
'content' => $model->content, 
]; 
Yii::$app->db->createCommand()->batchInsert(Post::tableName(), ['title', 'content'], $rows)->execute();

虽然又回到了batchInsert上,不过没关系,该验证的都验证了,安全是无须担心的。

以上所述是小编给大家介绍的Yii2如何批量添加数据的相关知识,希望对大家有所帮助!

PHP 相关文章推荐
php 多线程上下文中安全写文件实现代码
Dec 28 PHP
php 魔术函数使用说明
Feb 21 PHP
解析PHP中$_FILES的使用以及注意事项
Jul 05 PHP
Apache启动报错No space left on device: AH00023该怎么解决
Oct 16 PHP
php防止网站被攻击的应急代码
Oct 21 PHP
配置eAccelerator和XCache扩展来加速PHP程序的执行
Dec 22 PHP
PHP实现mysqli批量执行多条语句的方法示例
Jul 22 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
Dec 21 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
Feb 19 PHP
PHP+mysql实现的三级联动菜单功能示例
Feb 15 PHP
php如何把表单内容提交到数据库
Jul 08 PHP
Laravel ORM 数据model操作教程
Oct 21 PHP
PHP并发多进程处理利器Gearman使用介绍
May 16 #PHP
php截取视频指定帧为图片
May 16 #PHP
PHP中常用的数组操作方法笔记整理
May 16 #PHP
PHP获取用户访问IP地址的5种方法
May 16 #PHP
php pdo oracle中文乱码的快速解决方法
May 16 #PHP
Yii2中OAuth扩展及QQ互联登录实现方法
May 16 #PHP
Yii2 assets清除缓存的方法
May 16 #PHP
You might like
PHP4与PHP3中一个不兼容问题的解决方法
2006/10/09 PHP
php 文章调用类代码
2011/08/11 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
2014/08/20 PHP
PHP parse_ini_file函数的应用与扩展操作示例
2019/01/07 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
2020/04/20 PHP
JavaScript进阶教程(第四课第一部分)
2007/04/05 Javascript
?牟┛途W扣了一??效果出?? target=
2007/05/27 Javascript
Jquery 插件学习实例1 插件制作说明与tableUI优化
2010/04/02 Javascript
禁止你的左键复制实用技巧
2013/01/04 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
2013/12/31 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
原生JavaScript实现异步多文件上传
2015/12/02 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
jQuery事件用法详解
2016/10/06 Javascript
js代码实现下拉菜单【推荐】
2016/12/15 Javascript
NodeJS实现图片上传代码(Express)
2017/06/30 NodeJs
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
改变vue请求过来的数据中的某一项值的方法(详解)
2018/03/08 Javascript
微信小程序导航栏跟随滑动效果的实现代码
2019/05/14 Javascript
有关wxpython pyqt内存占用问题分析
2014/06/09 Python
Python使用xlrd读取Excel格式文件的方法
2015/03/10 Python
Python解析并读取PDF文件内容的方法
2018/05/08 Python
python 查找文件名包含指定字符串的方法
2018/06/05 Python
python通过Windows下远程控制Linux系统
2018/06/20 Python
Python/ArcPy遍历指定目录中的MDB文件方法
2018/10/27 Python
Python3.5面向对象程序设计之类的继承和多态详解
2019/04/24 Python
完美解决python3.7 pip升级 拒绝访问问题
2019/07/12 Python
python实现XML解析的方法解析
2019/11/16 Python
使用Nibabel库对nii格式图像的读写操作
2020/07/01 Python
详解Python 函数参数的拆解
2020/09/02 Python
美国演唱会和体育门票购买网站:Ticketnetwork
2018/10/19 全球购物
皇家阿尔伯特英国官方商店:Royal Albert骨瓷
2019/03/25 全球购物
小学师德标兵先进事迹材料
2014/05/25 职场文书
小班下学期幼儿评语
2014/12/30 职场文书
客户答谢会致辞
2015/01/20 职场文书
用JS写一个发布订阅模式
2021/11/07 Javascript