Cargar de un archivo plano o csv a una tabla mysql (maria db) utilizando un script php por consola

En este post les mostraré algo que se suele hacer mucho cuando trabajamos en aplicativos web los cuales requieren ser alimentados por plantillas de datos o datos que alimentan el aplicativo de forma masiva.

Vídeo explicativo

funciones php que se utilizan para leer datos de un archivo csv y otras cosas para cargar datos a una tabla con script php por consola

Contenido del vídeo

Código – scriptDataLoad.php

<?php
// Creamos la conexión
$cn = new mysqli('localhost', 'root', '', 'torneos');
// validamos la conexiòn
if ($cn->connect_error) {
    die("ERRROR CONECTANDO => " . $cn->connect_error);
}
$msgLog = '';
echo $msgLog .=  "********** SCRIPT CARGA DE DATOS DE UN ARCHIVO ************\n";
//definimos el archivo
$fileName = 'data.csv';
echo $msgLog .=  "Buscando el archivo $fileName.....\n";
//abrir el archivo
echo $msgLog .=  "Abriendo archivo $fileName.....\n";
$openFile = fopen($fileName,'r');
if($openFile!==FALSE){	
	echo $msgLog .=  "Archivo encontrado .....\n";	
	$contador = 0;
	$regOk = 0;
	$regError = 0;
	while (($data = fgetcsv($openFile,1000,';'))!== FALSE) {						
		if($contador>0){
			$cantEquipo = trim($data[0]);
			$cantDuelos = trim($data[1]);			
			echo $msgLog .=  "Procesando fila $contador...\n";		
			echo $msgLog .=  "Datos encontrados en fila $contador [ $cantEquipo - $cantDuelos]...\n";		
			echo $msgLog .=  "Guardando en tabla competencia ...\n";		
			$sql="INSERT INTO competencia (Id_com, Cant_equipos, Cant_duelos) VALUES (NULL,".$cantEquipo.",".$cantDuelos.");";
			echo $sql."\n";
			$insert= $cn->query($sql);
			if($insert){
				$regOk++;
				echo $msgLog .=  "Se almaceno los valores correctamente \n";
			}else{
				$regError++;
				echo $msgLog .=  "Problema la insertar valores de la fila $contador \n";
			}
		}else{
			$contador++;
		}
	}
	echo $msgLog .=  "********** RESUMEN SCRIPT ************\n";
	echo $msgLog .=  "** filas encontradas $contador      **\n";
	echo $msgLog .=  "** registros realizados $regOk      **\n";
	echo $msgLog .=  "** errores de registro $regError    **\n";
	echo $msgLog .=  "***********************+**************\n";
	$date = date('Y-m-d H:m:i');
	echo $msgLog .= "FECHA DE CARGA => $date";
	error_log($msgLog,3,"ArchivoLog.txt");
}

Archivo a cargar – data.csv

cantidad_equipos|catidad_duelos
3;4
1;3
12;123
12;12
1;3
1;2
12;12
12;221
12;12
12;12
22;22
32;12

Archivo de log – ArchivoLog.txt

********** SCRIPT CARGA DE DATOS DE UN ARCHIVO ************
Buscando el archivo data.csv.....
Abriendo archivo data.csv.....
Archivo encontrado .....
Procesando fila 1...
Datos encontrados en fila 1 [ 3 - 4]...
Guardando en tabla competencia ...
Se almaceno los valores correctamente 
Procesando fila 1...
Datos encontrados en fila 1 [ 1 - 3]...
Guardando en tabla competencia ...
Se almaceno los valores correctamente 
Procesando fila 1...
Datos encontrados en fila 1 [ 12 - 123]...
Guardando en tabla competencia ...
Se almaceno los valores correctamente 
Procesando fila 1...
Datos encontrados en fila 1 [ 12 - 12]...
Guardando en tabla competencia ...
Se almaceno los valores correctamente 
Procesando fila 1...
Datos encontrados en fila 1 [ 1 - 3]...
Guardando en tabla competencia ...
Se almaceno los valores correctamente 
Procesando fila 1...
Datos encontrados en fila 1 [ 1 - 2]...
Guardando en tabla competencia ...
Se almaceno los valores correctamente 
Procesando fila 1...
Datos encontrados en fila 1 [ 12 - 12]...
Guardando en tabla competencia ...
Se almaceno los valores correctamente 
Procesando fila 1...
Datos encontrados en fila 1 [ 12 - 221]...
Guardando en tabla competencia ...
Se almaceno los valores correctamente 
Procesando fila 1...
Datos encontrados en fila 1 [ 12 - 12]...
Guardando en tabla competencia ...
Se almaceno los valores correctamente 
Procesando fila 1...
Datos encontrados en fila 1 [ 12 - 12]...
Guardando en tabla competencia ...
Se almaceno los valores correctamente 
Procesando fila 1...
Datos encontrados en fila 1 [ 22 - 22]...
Guardando en tabla competencia ...
Se almaceno los valores correctamente 
Procesando fila 1...
Datos encontrados en fila 1 [ 32 - 12]...
Guardando en tabla competencia ...
Se almaceno los valores correctamente 
********** RESUMEN SCRIPT ************
** filas encontradas 1      **
** registros realizados 12      **
** errores de registro 0    **
***********************+**************
FECHA DE CARGA => 2020-04-10 04:04:23
CategoríasPHP

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *