En este vídeo muestro como se hace un script en php para cargar datos de un archivo plano o archivo csv a una tabla de una base de datos mysql (mariaDB). Lo hago paso a paso explicando el funcionamiento de cada línea de código y las funciones necesarias para esta tarea.
Código:
// 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"); }