sql >> Database teknologi >  >> RDS >> Mysql

Codeigniters insert_batch() med tusindvis af inserts har manglende poster

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.



  1. Transaktionsstyring med DAO'er

  2. Hvad er et en-til-en-forhold i en database?

  3. Er det muligt at GRUPPE BY flere kolonner ved hjælp af MySQL?

  4. Sådan får du adgang til online mysql-database i Android?