Idée de mise en œuvre :
Insérer des données par lots consiste d'abord à intégrer les données dans un tableau, puis à insérer le tableau directement dans la base de données, obtenant ainsi un Insérer plusieurs éléments de données.
Il y a deux cas
Le premier cas :
Insertion complète du champ, c'est-à-dire que la clé de chaque élément de données de ce tableau est cohérente avec le nom du champ dans la base de données, et chaque champ l'a.
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();
Deuxième cas :
Champ non complet
$rows[] = [ 'title' => $model->title, 'content' => $model->content, ]; Yii::$app->db->createCommand()->batchInsert(Post::tableName(), ['title', 'content'], $rows)->execute();
Recommandations associées : yii
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!