Ver Mensaje Individual
  #5 (permalink)  
Antiguo 14/03/2007, 03:06
Avatar de Panino5001
Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Re: No consigo insertar contenido de archivo csv en mysql

Fijate si esto te sirve:
los parámetros son nombre del archivo csv, $vector_campos=array('nombre de campo1','nombre del campo2','nombre del campo n'), y el nombre de la tabla.
Funciona con archivos subidos. Si se usa un form de upload, habrá que colocar $_FILES['nombre_campo_archivo']['tmp_name'] como primer parámetro cuando se llame a la función.
Tiene como ventaja hacer una única consulta para la inserción, lo cual es fundamental si el archivo es muy grande.
Código PHP:
function tomar_datos_archivo($nombre_archivo,$vector_campos,$tabla){
    
$formatocampos=implode(',',$vector_campos);
    
$strquery="insert into $tabla ($formatocampos) values";
    
$vec_uno=file($nombre_archivo);
    for(
$i=0;$i<count($vec_uno);$i++){
        
$formatovalores='';
        
$miarray=explode(';',$vec_uno[$i]);
            for(
$j=0;$j<(count($vector_campos));$j++){
                
$formatovalores.=mysql_real_escape_string(trim($miarray[$j]))."','";
            }
        
$formatovalores=substr($formatovalores,0,(strlen($formatovalores)-3));
        
$strquery.=" ('$formatovalores') ,";
    }
$strquery=substr($strquery,0,(strlen($strquery)-1)).';';
mysql_query($strquery);
echo 
'listo';


Última edición por Panino5001; 14/03/2007 a las 03:20