Yii 2 데이터 대량 추가 방법

이 조작 을 대량으로 추가 하면 실제 개발 에서 자주 사용 할 수 있 습 니 다.오늘 은 시간 을 내 서 yii 2 의 대량 추가 에 관 한 문 제 를 정리 하고 관심 있 는 친구 들 과 함께 보 세 요.
지난 글 에서Yii 2 gridview 대량 삭제 튜 토리 얼 구현에 대해 소개 해 드 렸 습 니 다.물론 gridview 를 어떻게 조작 하 느 냐 에 중점 을 두 고 있 습 니 다.오늘 은 yii 2 가 데 이 터 를 어떻게 대량으로 추가 하 는 지 잘 이야기 해 보 겠 습 니 다.
어떤 친구 가 소 리 쳤 습 니 다.이것 은 간단 하지 않 습 니 다.저 는 foreach 를 순환 하면 모든 순환 에서 데 이 터 를 데이터베이스 에 직접 삽입 하고 간단 하고 거 칠 게 끝 냅 니 다!내 가 닦 을 게,형,나 랑 같은 회사 에 있 으 면 다음 날 너 를 만 날 확률 이 크 지 않 을 것 같 아!
말 을 많이 하지 않 고,말 을 많이 하면 네가 나 를 욕 하고 있다.우 리 는 본론 으로 들 어가 서,먼저 초등학생 들 이 모두 알 고 있 는 표 구 조 를 보 자.

//test 
id 
name
우 리 는 지금 yii 2 에서 이 데이터 시트 에 10 개의 데 이 터 를 대량으로 삽입 하려 고 합 니 다.
우리 가 원 하 는 방식 은 틀림없이 아래 와 같다.

insert into test (name) values ('zhangsan'), ('lisi');
분석 이 다 끝 났 으 니,그래,어서 구체 적 인 실현 을 보 자.

//   $names = ['zhangsan', 'lisi']; 
$data = []; 
foreach ($names $k => $v) { 
$data[] = [$v]; 
} 
Yii::$app->db->createCommand()->batchInsert('test', ['name'], $data)->execute();
나 는 많은 사람들 이 AR 을 향 해 대량 삽입 을 실현 할 수 있 을 것 이 라 고 믿는다.그 이 유 는 더욱 안전 하고 조작 하기 편리 하기 때문이다.하지만 공식 매 뉴 얼 은 없 는 것 같 습 니 다.없습니다.없습니다.마음 이 찢 어 졌 는데 없어 요.적어도 저 는 찾 지 못 했 어 요.원문 을 클릭 해서 저 를 찾 아 연락 주세요.저도 si 점 이 필요 한 방법 이 있어 요.
그런데 공교롭게도 AR 과 관련 된 조작 방법 을 찾 았 습 니 다.구체 적 으로 어떻게 된 일 인지 참고 해 보 겠 습 니 다.
Post 클래스 의 배열$models 가 있다 고 가정 하면 이렇게 조작 할 수 있 습 니 다.

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();
batchInsert 로 돌 아 왔 지만 괜 찮 습 니 다.검증 할 것 은 모두 검증 되 었 습 니 다.안전 은 걱정 할 필요 가 없습니다.
위 에서 기술 한 것 은 소 편 이 여러분 에 게 소개 한 Yi 2 데이터 대량 추가 방법 에 관 한 지식 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다!

좋은 웹페이지 즐겨찾기