Mysql
 sql >> база данни >  >> RDS >> Mysql

В insert_batch() на Codeigniter с хиляди вмъквания има липсващи записи

insert_batch() се опитва да избегне точно вашия проблем - опитвайки се да вмъкнете данни, по-големи от MySQL, е конфигуриран да обработва наведнъж. Не съм сигурен дали опцията на MySQL за това е max_allowed_packet или нещо друго, но проблемът с него е, че задава ограничение в байтове, а не в брой редове.

Ако ще редактирате DB_active_rec.php, mysql_driver.php или каквото и да е подходящо ... опитайте да промените този брой 100 в for() цикъл. 50 би трябвало да е по-безопасен избор.

Освен това, FYI - affected_rows() няма да върне правилната стойност, ако вмъквате повече от 100 реда чрез insert_batch() , така че не е надеждно да го използвате като проверка за успех/грешка. Това е така, защото insert_batch() вмъква вашите данни със 100 записа наведнъж, докато affected_rows() ще върне данни само за последната заявка.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Фатална грешка:Клас 'TableRows' не е намерен в

  2. java jdbc mysql конектор:как да разрешите прекъсване на връзката след дълго време на бездействие

  3. Създайте система за бюлетин с PHP и MySQL

  4. Как да наблюдавате метриките на HAProxy с ClusterControl

  5. Как да вмъкнете записи от таблица в друга без дублиране