批量插入我们利用 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();
至于是哪种还须要开拓过程中灵巧利用,选择得当自己的。