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.