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脚本数据库功能详解(下)
Oct 09 PHP
SSI指令
Nov 25 PHP
JpGraph php柱状图使用介绍
Aug 23 PHP
关于php支持分块与断点续传文件下载功能代码
May 09 PHP
PHP实现获取图片颜色值的方法
Jul 11 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
Dec 19 PHP
ThinkPHP 404页面的设置方法
Jan 14 PHP
PHP发送短信代码分享
Aug 11 PHP
修复ShopNC使用QQ 互联时提示100010 错误
Nov 08 PHP
Symfony2函数用法实例分析
Mar 18 PHP
PHP使用GD库输出汉字的方法【测试可用】
Nov 10 PHP
php使用filter_var函数判断邮箱,url,ip格式示例
Jul 06 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
Yii实现多按钮保存与提交的方法
2014/12/03 PHP
php图片添加文字水印实现代码
2016/03/15 PHP
提高 DHTML 页面性能
2006/12/25 Javascript
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
2008/12/25 Javascript
javascript两段代码,两个小技巧
2010/02/04 Javascript
javascript 通用简单的table选项卡实现
2010/05/07 Javascript
javascript getElementsByTagName
2011/01/31 Javascript
jQuery实现防止提交按钮被双击的方法
2015/03/24 Javascript
jQuery+CSS3文字跑马灯特效的简单实现
2016/06/25 Javascript
AngularJS入门教程之数据绑定用法示例
2016/11/01 Javascript
JavaScript浏览器对象模型BOM(BrowserObjectModel)实例详解
2016/11/29 Javascript
js分页之前端代码实现和请求处理
2017/08/04 Javascript
ligerUI---ListBox(列表框可移动的实例)
2017/11/28 Javascript
基于vue-ssr服务端渲染入门详解
2018/01/08 Javascript
nodejs实现范围请求的实现代码
2018/10/12 NodeJs
详解Vue 动态组件与全局事件绑定总结
2018/11/11 Javascript
微信小程序使用wx.request请求服务器json数据并渲染到页面操作示例
2019/03/30 Javascript
layui动态表头的实现代码
2019/08/22 Javascript
基于JavaScript实现轮播图效果
2021/01/02 Javascript
Python实现批量把SVG格式转成png、pdf格式的代码分享
2014/08/21 Python
python字典get()方法用法分析
2015/04/17 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
2017/04/28 Python
Python实现将通信达.day文件读取为DataFrame
2018/12/22 Python
深入了解Python iter() 方法的用法
2019/07/11 Python
Python 2种方法求某个范围内的所有素数(质数)
2020/01/31 Python
C语言笔试题
2014/09/04 面试题
《和田的维吾尔》教学反思
2014/04/14 职场文书
实习公司领导推荐函
2014/05/21 职场文书
学校班班通实施方案
2014/06/11 职场文书
综合测评自我评价
2015/03/06 职场文书
捐书仪式主持词
2015/07/04 职场文书
入党申请书格式
2019/06/20 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript
pycharm安装深度学习pytorch的d2l包失败问题解决
2022/03/25 Python
Win11 21h2可以升级22h2吗?看看你的电脑符不符合要求
2022/07/07 数码科技
Django数据库(SQlite)基本入门使用教程
2022/07/07 Python