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