前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Yii2批量插入数据

Yii2批量插入数据

作者头像
PHP学习网
发布2022-08-03 14:42:24
5400
发布2022-08-03 14:42:24
举报
文章被收录于专栏:PHP学习网PHP学习网

批量插入数据在优化数据库连接时很有作用,特别是在数据量很大情况下,可以减少数据库连接,所以此方法大家都应该掌握。

批量插入我们使用 batchInsert ,至于具体用法大家可以看文档,不看文档也没关系,相信大家直接看例子也能明白。

批量插入的例子

//要插入的表的名称 $tableName = Post::tableName();

//要插入的字段 $field = [‘id’,’name’];

//要插入的数据(注:是一个二维数组) $insertData[] = [1,”PHP学习网”]; $insertData[] = [2,”PHP学习网”]; $insertData[] = [3,”PHP学习网”]; $insertData[] = [4,”PHP学习网”]; $insertData[] = [5,”PHP学习网”]; $insertData[] = [6,”PHP学习网”];

//执行,返回值为插入成功的数目 $totalnum = Yii::$app->db->createCommand()->batchInsert($tableName,$field,$insertData)->execute();

以上是没有经过数据合法效验的,若是需要效验请使用

$rows = []; foreach ($insertData as $model) { if (!$model->validate()) { // 处理无效数据 break; } $rows[] = $model->attributes; } $totalnum = Yii::$app->db->createCommand()->batchInsert($tableName,$field,$rows)->execute();

若是效验确实不需要,也可以使用,下面的方法简化效验 use yii\helpers\ArrayHelper; $rows = ArrayHelper::getColumn($insertData, ‘attributes’);

接下来执行 $post = new Post(); Yii::$app->db->createCommand()->batchInsert(Post::tableName(), $post->attributes(), $rows)->execute();

至于是哪种还需要开发过程中灵活使用,选择合适自己的。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-06-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PHP学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 批量插入的例子
相关产品与服务
数据库一体机 TData
数据库一体机 TData 是融合了高性能计算、热插拔闪存、Infiniband 网络、RDMA 远程直接存取数据的数据库解决方案,为用户提供高可用、易扩展、高性能的数据库服务,适用于 OLAP、 OLTP 以及混合负载等各种应用场景下的极限性能需求,支持 Oracle、SQL Server、MySQL 和 PostgreSQL 等各种主流数据库。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档