[LUG.ro] sql importar csv

Sebastian Dominguez sebaminguez en gmail.com
Vie Mar 6 16:18:59 ART 2009


Juan Pablo Villalba-A favor del Open Source escribió:
> hola
>        Les comento que me estoy iniciando en el mundo PHP+MYSQL y necesito
> automatizar una tarea en el servidor.lo que necesito puntualmente es lo
> siguiente: que cada 6 hs se importe un archivo *.csv a una base de datos en
> mysql.estuve googleando y buscando info, sobre si existe en el lenguaje sql
> algo que importe archivos y no encontre nada...la automatizacion deberia
> hacerla con crontab? Gracias
>   
Vi que te pasaron un script en ruby. Tambien veo que hablas de PHP+SQL.

Porque no intentas mas o menos lo mismo con PHP.
Un  for que recorra linea a linea el archivo (fgets)
|<?php
$gestor = @fopen("/tmp/archivo_entrada.txt", "r");
if ($gestor) {
    while (!feof($gestor)) {
        $bufer = fgets($gestor, 4096);
        echo $bufer;
    }
    fclose ($gestor);
}
?> |

con explode separas los campos por el ; y le das el INSERT en la DB. (en 
lugar de hacer el echo $bufer

Recomiendo que no utilices file() o similares que cargan todo el archivo 
en un arreglo porque esto significa cargar el archivo en memoria y, 
sobre todo en tu caso, podes encontrarte con archivos tan grande que no 
te alcance la memoria para manejarlos.


Si necesitas mas ayuda avisá.

--
Seba Dominguez


Más información sobre la lista de distribución Lugro