insert_batch() försöker undvika exakt ditt problem - att försöka infoga data som är större än vad MySQL är konfigurerat att bearbeta åt gången. Jag är inte säker på om MySQL:s alternativ för det var max_allowed_packet eller något annat, men problemet med det är att det sätter en gräns i byte och inte ett antal rader.
Om du ska redigera DB_active_rec.php, mysql_driver.php eller vad som är lämpligt ... försök att ändra det 100-talet i for() slinga. 50 borde vara ett säkrare val.
Annat än det, FYI - affected_rows() returnerar inte rätt värde om du infogar fler än 100 rader via insert_batch() , så det är inte tillförlitligt att använda det som en framgångs-/felkontroll. Det beror på att insert_batch() infogar dina data med 100 poster åt gången, medan affected_rows() skulle bara returnera data för den senaste frågan.