No puedo subir todos los registro de un cvs

Iniciado por yoelrodguez, 12 Diciembre 2019, 16:47 PM

0 Miembros y 1 Visitante están viendo este tema.

yoelrodguez

Tengo la siguiente situación, estoy subiendo a mi base de datos un fichero csv que tiene al rededor de 16 mil y pico de registro. La cantidad de registro varia de un mes a otro por lo que el resto no es un valor exacto.

Las consultas de subida de datos la estoy haciendo de 100 en 100, el problema se me presenta cuando la cantidad de registro a subir queda por debajo de 100 (ejemplo 85). Estos últimos registro no me lo sube completo siempre me deja algunos sin subir, la cantidad varia de acuerdo al resto que queda.

A continuación les dejo el código para ver si me pueden ayudar.

Gracias.

$numLineas = (count(file("storage/" . $files))) / 100;



if (!is_int($numLineas)) {

$numLineas = intval($numLineas) + 1;

}

$Resto = (count(file("storage/" . $files))) % 100;



//Comenzamos a procesar el fichero.

$v = 1;

$c = 1;

$cil = 1;



if (($gestor = fopen("storage/" . $files, "r")) !== false) {

while (($datos = fgetcsv($gestor, 1000, ",")) !== false) {

if ($c != 1) {

                                      //Insertamos los datos siempre que la variable $v llegue a 100.

if ($v == 100 and $cil <= $numLineas) {.



                                         //Insertamos los datos  y ponemos la variable $v en cero



$cil++;

$v = 0;

}



//Insertamos el resto que no corresponde a a la cantidad de 100

if ($v == $Resto and $cil == $numLineas and $Resto != 0) {



                                     //Insertamos el resto que queda.



$v = 0;

}

}

$v++;

$c++;

}

}

Valora esta pregunta


yoelrodguez

Hola, aquí les dejo la solución al problema que tenia con el insertar múltiples registro por si a alguien mas le sucede. El problema no estaba en la forma, en que estoy segmentado el fichero para subirlo, sino en la forma en que estaba haciendo el query para mi insert . Ese código,no lo coloque en mi pregunta ya que el proceso de insert se me realizaba correctamente. Buscando en internet encontré una explicación de como insertar múltiples fichero en php con mysqli y ahí puede observar que el método query que esta usando no era el correcto a continuación les dejo el método que estaba usando y por el que lo sustituí y se me soluciono el problema.

Método que estaba usando:


mysqli_query

Método que coloque nuevo.

mysqli_multi_query