insert_batch()
se snaží vyhnout přesně vašemu problému - snaží se vložit data větší, než je nakonfigurováno pro zpracování MySQL najednou. Nejsem si jistý, zda možnost MySQL pro to byla max_allowed_packet
nebo něco jiného, ale problém je v tom, že nastavuje limit v bajtech a ne v počtu řádků.
Pokud budete upravovat DB_active_rec.php, mysql_driver.php nebo cokoli jiného, zkuste změnit tento počet 100 v for()
smyčka. 50 by měla být bezpečnější volba.
Kromě toho, FYI - affected_rows()
nevrátí správnou hodnotu, pokud vkládáte více než 100 řádků pomocí insert_batch()
, takže není spolehlivé jej použít jako kontrolu úspěchu/chyby. Je to proto, že insert_batch()
vloží vaše data po 100 záznamech najednou, zatímco affected_rows()
vrátí data pouze pro poslední dotaz.