insert_batch()
probeert precies uw probleem te vermijden - proberen gegevens in te voegen die groter zijn dan MySQL is geconfigureerd om tegelijk te verwerken. Ik weet niet zeker of MySQL's optie daarvoor max_allowed_packet
was of iets anders, maar het probleem ermee is dat het een limiet in bytes instelt en niet in een aantal rijen.
Als je DB_active_rec.php, mysql_driver.php of wat dan ook gaat bewerken ... probeer die 100 telling te veranderen in de for()
lus. 50 zou een veiligere keuze moeten zijn.
Anders dan dat, FYI - affected_rows()
retourneert niet de juiste waarde als u meer dan 100 rijen invoegt via insert_batch()
, dus het is niet betrouwbaar om het te gebruiken als een succes-/foutcontrole. Dat komt omdat insert_batch()
voegt uw gegevens met 100 records tegelijk in, terwijl affected_rows()
zou alleen gegevens voor de laatste zoekopdracht retourneren.