Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/04/2009, 11:25
Avatar de Daam
Daam
 
Fecha de Ingreso: octubre-2007
Ubicación: Planeta Tierra
Mensajes: 152
Antigüedad: 16 años, 6 meses
Puntos: 0
Pregunta Insertar CSV en base datos

Hola, estoy gestionando una base de datos con PhpMyAdmin 3.x y necesito importar un CSV, pues en ese archivo están almacenados una gran cantidad de correos electrónicos y datos de usuarios que necesito migrar a la base de datos.

El archivo CSV tiene más de 5000 entradas y además contiene 5 columnas:
  • categorias
  • email
  • name
  • username
  • password (todos tienen el mismo password)

El archivo es producto de la exportación de la lista de contactos de una cuenta de correo Yahoo.com. Posteriormente lo edité con CSVed, para dejar solamente los columnas y datos que necesitaba, pues originalmente ese CSV trae más de 50 columnas.

Necesito importar ese archivo en una base de datos que tiene las mismas columnas que el CSV.

He intentado lo siguiente:
  • Utilizar el gestor de importación de PhpMyAdmin, permutando todas las opciones posibles, pero nada...
  • He inyectado una sentencia sql a través de un php

    Código PHP:
    <?php
    function Conectarse()
    {
           if (!(
    $link=mysql_connect("localhost","root",""))) //estoy usando un servidor de prueba (WAMP)  {
               
    echo "Error conectando a la base de datos.";
               exit();
           }
            if (!
    mysql_select_db("usuarios",$link)) {
                echo 
    "Error seleccionando la base de datos.";
               exit();
           }
           return 
    $link;
    }

    $row 1;
    $handle fopen("datos.csv""r");
    while ((
    $data fgetcsv($handle5500",")) !== FALSE) {
        
    $num count($data);
        
    $row++;
        
    $cadena "insert into joomla(categorias,email,name,username,password) values(";
        for (
    $c=0$c $num$c++) {
            if (
    $c==($num-1))
                  
    $cadena $cadena."'".$data[$c] . "'";
            else
                  
    $cadena $cadena."'".$data[$c] . "',";
        }

        
    $cadena $cadena.");";
        echo 
    $cadena."<br>";

         
    $enlace=Conectarse();
         
    $result=mysql_query($cadena$enlace);
         
    mysql_close($enlace);
    }

    fclose($handle);

    ?>

¿Qué puedo hacer?


Espero su ayuda :).
__________________
"Si apuntas hacia las estrellas, puede ser que no alcances alguna, pero no terminarás con las manos llenas de lodo."