Я пытаюсь вставить 100000 строк в базу данных. Я использую функцию insert_batch.
Я могу вставить до 80000 строк, но когда я создаю больше, это вызывает ошибку HTTP ERROR 500.
что мне делать? Я новичок в программировании. спасибо.
это мой код;
контроллер
if ($validation_result) {
$serial_numbers = $this->serial_numbers_model->generate_serial_numbers($product_id, $partner_id, $serial_number_quantity, $serial_number_start);
$issued_date = date("Y-m-d H:i:s");
$inserted_rows = 0;
foreach ($serial_numbers as $sn) {
$check_number = $this->serial_numbers_model->generate_check_number();
$first_serial_number = reset($serial_numbers);
$last_serial_number = end($serial_numbers);
$inserted_rows++;
$insert_data[] = array(
'partner_id' => $partner_id,
'product_id' => $product_id,
'check_number' => $check_number,
'serial_number' => $sn,
'issued_time' => $issued_date,
'serial_number_status' => CREATE_STATUS
);
}
$this->serial_numbers_model->insert_batch($insert_data);
$all_rows_count = $this->db->count_all_results('serial_numbers', FALSE);
$views_data['serial_number_min_max'] = $this->get_serial_number_min_max();
$views_data['status_counts'] = $this->get_status_counts();
$views_data['success_msg'] = sprintf('発行完了しました. 合計件数 (%s) | 発行件数 (%s) => %sから%sまで', $all_rows_count, $inserted_rows, $first_serial_number, $last_serial_number);
}
модель
public function insert_batch($set_data)
{
if (!empty($set_data)) {
$chunk_array = array_chunk($set_data, 1000);
$this->db->trans_start();
foreach ($chunk_array as $key => $data) {
$this->db->insert_batch($this->table, $data);
}
$this->db->trans_complete();
}
}