Corsi on-line

Importare dati in MySQL da un file CSV

Questo mese ho risposto a questa domanda su un paio di forum, quindi ho pensato potesse essere utile (soprattutto a me) scrivere una volta per tutte la risposta per poterla poi linkare in futuro.
La procedura per caricare dati da una sorgente CSV all’interno di un DB MySQL è molto semplice in quanto completamente automatizzata mediante un’apposita query basata sul comando LOAD DATA.
Facciamo un esempio pratico e supponiamo di avere una sorgente dati CSV ed una tabella sul DB avente la medesima struttura.
A questo punto potremmo caricare dati utilizzando una semplice query tramite phpMyAdmin o qualsiasi altro GUI per la gestione del DB:

LOAD DATA LOCAL INFILE 'miofile.csv'
INTO TABLE miatabella
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\\r\\n';

Ma se volete potete eseguire questo comando anche tramite PHP:

<?php 
mysql_connect('localhost', 'user', 'pass'); 
mysql_select_db('nome_del_database'); 
$query = "LOAD DATA LOCAL INFILE 'miofile.csv' INTO TABLE miatabella FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\r\\n'"; 
?>
Post correlati
  • paul

    E se la struttura del CSV non è identica a quella della Table MySQL?
    Ad esempio, non tutte le colonne sono presenti nel file CSV (le altre potrebbero essere valorizzate col default value).
    Oppure, se nella Table cìè una PRIMARY KEY AUTO_INCREMENT che nel CSV non è presente?
    Devo fare una pre-elaborazione per adattare il CSV, o c’è un comando MySQL nativo?
    Mi chiedevo poi come devo valorizzare il path del file (con gli , /…..)
    Grazie

I più letti del mese
Tematiche