sql >> Base de Datos >  >> RDS >> Mysql

Insert_batch() de Codeigniter con miles de inserciones tiene registros faltantes

insert_batch() intenta evitar exactamente su problema:intentar insertar datos más grandes de lo que MySQL está configurado para procesar a la vez. No estoy seguro si la opción de MySQL para eso fue max_allowed_packet o algo más, pero el problema es que establece un límite en bytes y no en un número de filas.

Si va a editar DB_active_rec.php, mysql_driver.php o lo que sea apropiado... intente cambiar ese conteo de 100 en for() círculo. 50 debería ser una opción más segura.

Aparte de eso, FYI - affected_rows() no devolverá el valor correcto si está insertando más de 100 filas a través de insert_batch() , por lo que no es confiable usarlo como una verificación de éxito/error. Eso es porque insert_batch() inserta sus datos por 100 registros a la vez, mientras que affected_rows() solo devolvería datos para la última consulta.