Yii2如何批量添加数据_php实例

批量添加这个操作,在实际开发中经常用得到,今天小编抽空给大家整理些有关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如何批量添加数据的相关知识,希望对大家有所帮助!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索yii2批量添加
yii批量添加
yii批量添加、yii2批量添加、yii2 批量添加数据、yii 批量添加数据、asp 批量添加数据实例,以便于您获取更多的相关知识。

时间: 2024-10-03 23:03:14

Yii2如何批量添加数据_php实例的相关文章

codeigniter框架批量插入数据_php实例

复制代码 代码如下: $sub_form = array();  $loop = 0;  $ins_loop = 0;  $sum = count($form_datas);  $this->logger->info('insert data total:'.$sum);  //使用事物批量导入有助于提高插入效率  $callStartTime = microtime(true);  $this->db->trans_start();  foreach ( $form_datas

php批量添加数据与批量更新数据的实现方法_php技巧

本文实例讲述了php批量添加数据与批量更新数据的实现方法.分享给大家供大家参考.具体分析如下: php如果要批量保存数据我们只要使用sql的insert into语句就可能实现数据批量保存了,如果是更新数据使用update set就可以完成更新了,操作方法都非常的简单,下面整理两个例子. 批量数据录入 设计方法:同时提交多条表单记录,为每一条记录设置相同的文本域名称,然后在表单处理页中,通过for循环来读取提取表单提交的数据,最后以数据的形式将数据逐条添加到数据库中. 其中,应用一个count(

如何在gridview中批量添加数据

问题描述 如何在gridview中批量添加数据 我想在dev gridview 中批量添加数据,如何在gridview中批量添加数据,并保存数据库中 解决方案 向数据库批量添加数据JDBC--批量添加数据C#批量添加数据 解决方案二: 希望我的回复对你有用. 假定有一个Product表,字段有(Id,Name,Quantity,...)我们要一次批量更新Quantity的值 首先在Gridview中,Quantity列以TemplateField显示,其他的列属性设为只读,把显示格式设为Text

sqlserver-求一个asp.net 的运用jquery ajax先数据库 添加数据的实例

问题描述 求一个asp.net 的运用jquery ajax先数据库 添加数据的实例 我在做一个asp.net技术做的问卷调查页面,需要把每一项的文本都添加到sqlserver数据库,大概20个选项,每个选项平均有100个字左右 我想问一下 这么大的数据量用jquery ajax 真的可以吗? 如果可以,请各位大神做个用jquery ajax做一个向数据库添加的实例给我,要注释齐全,代码规范的,谢谢! 解决方案 ajax和普通表单提交一样,你数据量大要使用post提交,没有什么ajax不可以的.

mysql使用mybatis批量添加数据,返回主键

问题描述 mysql使用mybatis批量添加数据,返回主键 mysql使用mybatis批量添加,使用各种方法都无法返回对应的主键,请兄弟们不吝赐教 解决方案 该功能无法实现,只能分步骤来,先插入在查询 解决方案二: 批量添加还要返回主键??这个不太可能吧.最多也就返回插入的条数.如果返回主键,那不是了返回一个list然后里面放主键?一条一条插入倒是可以返回主键 解决方案三: 分步骤来,先插入在查询

c#这段代码向数据库批量添加数据为何1000行就需要10分钟啊求大神帮忙优化啊

问题描述 c#这段代码向数据库批量添加数据为何1000行就需要10分钟啊求大神帮忙优化啊 public void ShuaXin() { SqlCommand com = new SqlCommand(""delete from priceavg"" DBHelper.con); DBHelper.con.Open(); com.ExecuteNonQuery(); adapter = new SqlDataAdapter(""select *

怎么用datagridview批量添加数据哦 谢谢,第一次用wingdows编程, 请指点指点哦,

问题描述 我想用datagridview批量添加数据进数据库,能给个例子吗.指点指点吗?感激············· 解决方案 解决方案二:dataGridView1.DataSource=ds.Tables[0];

浅析Yii2 gridview实现批量删除教程_php实例

在朋友圈里有童鞋向我讨论GridView的问题,有朋友说你用gridview给我去掉表头的链接?我想的很久,用gridview确实不容易实现.有不同见解的朋友欢迎留言.但是呢,这根gridview有个毛线关联啊,明明是要设置ActiveDataProvider,你要我怎么用gridview实现嘛. 这个问题也是很简单的,我们来看看具体实现 $dataProvider = new ActiveDataProvider([ 'query' => $query, ]); $dataProvider->

在ASP.NET 2.0中操作数据之六十四:GridView批量添加数据_自学过程

导言: 在前面的第62章<GridView批量更新数据>里,我们用GridView控件里定制了一个批编辑界面,同样的我们也可以定制一个批添加界面.假设有这种情况,我们接受一批从Tokyo(东京)发过来的货物:6种不同的tea 和 coffee,如果用户在一个DetailsView控件里一次输入一个产品,他将会重复的输入很多相同的值,比如相同的种类(Beverages),相同的供应商(Tokyo Traders),相同的discontinued值(False),以及相同的order值(0).重复