insert_batch()
forsøger at undgå præcis dit problem - forsøger at indsætte data større end MySQL er konfigureret til at behandle ad gangen. Jeg er ikke sikker på, om MySQL's mulighed for det var max_allowed_packet
eller noget andet, men problemet med det er, at det sætter en grænse i bytes og ikke et antal rækker.
Hvis du vil redigere DB_active_rec.php, mysql_driver.php eller hvad der nu er passende ... prøv at ændre det 100-tal i for()
sløjfe. 50 burde være et mere sikkert valg.
Bortset fra det, FYI - affected_rows()
returnerer ikke den korrekte værdi, hvis du indsætter mere end 100 rækker via insert_batch()
, så det er ikke pålideligt at bruge det som et succes-/fejltjek. Det er fordi insert_batch()
indsætter dine data med 100 poster ad gangen, mens affected_rows()
ville kun returnere data for den sidste forespørgsel.