function exportarCSV_a_mySQL($fileCSV)
{
$registros=0;
$ruta=$fileCSV['tmp_name'];
if(!file_exists($ruta))
{return false;}
$tabla=quitar_extension($fileCSV['name']);
$borra_tabla="DROP TABLE `".$tabla."`";
mysql_query($borra_tabla);
$f=fopen($ruta,"r");
if($f)
{
echo "<b>Guardando CSV en la BDD :</b><br />";
$contenido=fread($f,filesize($ruta));
fclose($f);
$contenido=ereg_replace("\r\n", "\n" , $contenido); // convertimos windows a unix
$lineas=explode("\n",$contenido);
$titulo=explode(";",$lineas[0]);
$NUM_CAMPOS=count($titulo);
$sql_generado_para_eliminar="";
$crear_tabla_campos="";
for($i=0;$i<$NUM_CAMPOS;$i++)
{
$titulo[$i]=ereg_replace("\"", "" , $titulo[$i]); // kitamos comillas
$sql_generado_para_eliminar.=" AND `".$titulo[$i]."` =''";
$crear_tabla_campos.="`".$titulo[$i]."` varchar(60) NOT NULL";
if($i+1!=$NUM_CAMPOS)// si no es el ultimo , ponemos coma
{
$crear_tabla_campos.=",";
}
}
$crear_tabla="CREATE TABLE `".$tabla."` (".$crear_tabla_campos.") ENGINE=MyISAM DEFAULT CHARSET=latin1;";
mysql_query($crear_tabla);
$linea=1;
do
{
$insertar_titulos="";
$insertar_campos="";
$campo=explode(";",$lineas[$linea]);
for($i=0;$i<$NUM_CAMPOS;$i++)
{
$campo[$i]=ereg_replace("\"", "" , $campo[$i]);
$insertar_titulos.=" `".$titulo[$i]."` ";
$insertar_campos.=" '".$campo[$i]."' ";
if($i+1!=$NUM_CAMPOS)// si no es el ultimo , ponemos coma
{
$insertar_titulos.=",";
$insertar_campos.=",";
}
}
$sql="INSERT INTO `".$tabla."` ( ".$insertar_titulos." ) VALUES ( ".$insertar_campos." );";
if(mysql_query($sql))
{
echo ". ";
$registros++;
}
else
{echo "X ";return false;}
$linea++;
}while(next($lineas));
$sql="DELETE FROM `".$tabla."` WHERE 1".$sql_generado_para_eliminar;mysql_query($sql);
echo "<br />";
return $tabla;
}
else
{
return false;
}
}
function quitar_extension($archivo)
{
$extension = strrchr($archivo,".");
$pos=strpos($archivo,$extension);
return substr($archivo,0,$pos);
}
Código ejemplo de llamada / Code exmple call :
$tabla = exportarCSV_a_mySQL($_FILES['archivo_csv']);
if($tabla)
{
echo "Export OK in mysql table : ".$tabla;
}
else
{
echo "Error in export ...";
}
No hay comentarios:
Publicar un comentario