yii 2一括挿入データ

788 ワード

yii 2一括挿入データとは、データを1つの配列に統合する、この配列を直接データベースに挿入し、複数のデータを一度に挿入することである.
2つの状況に分けて、
1つ目のケース:
全フィールドの挿入は、この配列の各データの中のキーがデータベースの中のフィールド名と一致し、各フィールドにある.
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();