【Laravel】大量INSERTする際に使う関数(chunk)
INSERT時にテーブルのカラム数が異常なほど多い場合やテキストデータのサイズが大きいと下記のエラーが出ます。
<?php //General error: 1390 Prepared statement contains too many placeholders ?>
調べてみると、Laravelに何回か分けてINSERTできる関数があるそうでそれが「chunk」というものだそうです。
500件ずつデータを追加する場合
<?php //サンプルの配列は1つですが、$inserts配列に1000個以上あるのと過程します。 $inserts[] = array('id'=>’1’,'name'=>'テスト'); $insert_data = collect($inserts); foreach ($insert_data->chunk(500) as $chunk) { DB::table('sample')->insert( $chunk->toArray()); } ?>