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.