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 使用post,get的一种简洁方式
Apr 25 PHP
php下安装配置fckeditor编辑器的方法
Mar 02 PHP
PHP递归调用的小技巧讲解
Feb 19 PHP
探讨:php中在foreach中使用foreach ($arr as &$value) 这种类型的解释
Jun 24 PHP
php递归调用删除数组空值元素的方法
Apr 28 PHP
php中__toString()方法用法示例
Dec 07 PHP
老生常谈PHP位运算的用途
Mar 12 PHP
phpmyadmin下载、安装、配置教程
May 16 PHP
Laravel中encrypt和decrypt的实现方法
Sep 24 PHP
php处理抢购类功能的高并发请求
Feb 08 PHP
Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法
Apr 02 PHP
php实现session共享的实例方法
Sep 19 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
第二节 对象模型 [2]
2006/10/09 PHP
php中var_export与var_dump的区别分析
2010/08/21 PHP
PHP中extract()函数的定义和用法
2012/08/17 PHP
PHP+MySQL实现消息队列的方法分析
2018/05/09 PHP
PHP反射基础知识回顾
2020/09/10 PHP
JS 面向对象之神奇的prototype
2011/02/26 Javascript
jQuery EasyUI API 中文文档 - Spinner微调器使用
2011/10/21 Javascript
jquery操作HTML5 的data-*的用法实例分享
2014/08/17 Javascript
JavaScript中匿名、命名函数的性能测试
2014/09/04 Javascript
Node.js操作mysql数据库增删改查
2016/03/30 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
Angular学习笔记之angular的$filter服务浅析
2016/11/12 Javascript
angular4实现tab栏切换的方法示例
2017/10/21 Javascript
详解webpack babel的配置
2018/01/09 Javascript
js中事件对象和事件委托的介绍
2019/01/21 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
vue data恢复初始化数据的实现方法
2019/10/31 Javascript
ES6中new Function()语法及应用实例分析
2020/02/19 Javascript
100行Python代码实现自动抢火车票(附源码)
2018/01/11 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
python_opencv用线段画封闭矩形的实例
2018/12/05 Python
Keras实现支持masking的Flatten层代码
2020/06/16 Python
Python 带星号(* 或 **)的函数参数详解
2021/02/23 Python
html5新特性与用法大全
2018/09/13 HTML / CSS
LINUX下线程,GDI类的解释
2012/04/17 面试题
大学生写自荐信的技巧
2014/01/08 职场文书
教师申诉制度
2014/01/29 职场文书
新任教师自我鉴定
2014/02/24 职场文书
我的中国梦演讲稿初中篇
2014/08/19 职场文书
2014年财务科工作总结
2014/11/11 职场文书
2015年村级财务管理制度
2015/08/04 职场文书
优秀范文:《但愿人长久》教学反思3篇
2019/10/24 职场文书
详解使用 CSS prefers-* 规范提升网站的可访问性与健壮性
2021/05/25 HTML / CSS
python异常中else的实例用法
2021/06/15 Python
CSS巧用渐变实现高级感背景光动画
2021/12/06 HTML / CSS
《乙女游戏世界对路人角色很不友好》OP主题曲无字幕动画MV公开
2022/04/05 日漫