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

Insert_batch() di Codeigniter con migliaia di inserti ha record mancanti

insert_batch() cerca di evitare esattamente il tuo problema:provare a inserire dati più grandi di quelli configurati per l'elaborazione di MySQL alla volta. Non sono sicuro che l'opzione di MySQL fosse max_allowed_packet o qualcos'altro, ma il problema è che imposta un limite in byte e non un numero di righe.

Se modificherai DB_active_rec.php, mysql_driver.php o qualsiasi altra cosa appropriata ... prova a cambiare quel conteggio di 100 nel for() ciclo continuo. 50 dovrebbe essere una scelta più sicura.

A parte questo, FYI - affected_rows() non restituirà il valore corretto se stai inserendo più di 100 righe tramite insert_batch() , quindi non è affidabile usarlo come controllo di successo/errore. Questo perché insert_batch() inserisce i tuoi dati per 100 record alla volta, mentre affected_rows() restituirebbe solo i dati per l'ultima query.