insert_batch() tenta evitar exatamente o seu problema - tentar inserir dados maiores do que o MySQL está configurado para processar de cada vez. Não tenho certeza se a opção do MySQL para isso foi max_allowed_packet ou qualquer outra coisa, mas o problema é que ele define um limite em bytes e não em um número de linhas. Se você estiver editando DB_active_rec.php, mysql_driver.php ou o que for apropriado ... tente alterar essa contagem de 100 no
for() ciclo. 50 deve ser uma escolha mais segura. Fora isso, FYI -
affected_rows() não retornará o valor correto se você estiver inserindo mais de 100 linhas via insert_batch() , portanto, não é confiável usá-lo como uma verificação de sucesso/erro. Isso porque insert_batch() insere seus dados em 100 registros por vez, enquanto affected_rows() retornaria apenas os dados da última consulta.