insert_batch() próbuje uniknąć dokładnie Twojego problemu - próbując wstawić dane większe niż MySQL skonfigurowany do przetwarzania na raz. Nie jestem pewien, czy opcją MySQL do tego było max_allowed_packet lub coś innego, ale problem polega na tym, że ustawia limit w bajtach, a nie w liczbie wierszy.
Jeśli będziesz edytować DB_active_rec.php, mysql_driver.php lub cokolwiek innego ... spróbuj zmienić liczbę 100 w for() pętla. 50 powinno być bezpieczniejszym wyborem.
Poza tym, FYI - affected_rows() nie zwróci prawidłowej wartości, jeśli wstawiasz więcej niż 100 wierszy za pomocą insert_batch() , więc używanie go jako sprawdzania sukcesu/błędu nie jest niezawodne. To dlatego, że insert_batch() wstawia dane po 100 rekordów na raz, podczas gdy affected_rows() zwróci dane tylko dla ostatniego zapytania.