实现思路:
批量插入数据就是先将数据整合在一个数组里面,然后将这个数组直接插入到数据库中,从而实现一次性插入多条数据。
分两种情况
第一种情况:
全字段插入,就是这个数组中每条数据里面的键都和数据库里面字段名一致,且每个字段都有。
1 2 3 4 5 6 7 8 9 10 | 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();
|
登录后复制
第二种情况:
非全字段
1 2 3 4 5 | $rows [] = [
'title' => $model ->title,
'content' => $model ->content,
];
Yii:: $app ->db->createCommand()->batchInsert(Post::tableName(), ['title', 'content'], $rows )->execute();
|
登录后复制
相关推荐:yii
以上是yii2怎么向数据库批量添加数据的详细内容。更多信息请关注PHP中文网其他相关文章!