PHP - No puedo subir todos los registro de un cvs

 
Vista:
Imágen de perfil de Yoel
Val: 617
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

No puedo subir todos los registro de un cvs

Publicado por Yoel (198 intervenciones) el 12/12/2019 16:37:48
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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
$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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Yoel
Val: 617
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

No puedo subir todos los registro de un cvs

Publicado por Yoel (198 intervenciones) el 17/12/2019 17:50:09
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:

1
mysqli_query

Método que coloque nuevo.

1
mysqli_multi_query

Gracias a todos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar