Importare un file CSV in MySQL

Per importare dati da un file csv (Comma Separated Values) a una tabella Mysql, dobbiamo far uso della query SQL

LOAD DATA LOCAL INFILE 'nome_file_csv' INTO TABLE nome_tabella
   FIELDS TERMINATED BY ";" LINES TERMINATED BY "\r\n" IGNORE 1 LINES;

L’opzione FIELDS TERMINATED BY “;” indica il carattere separatore tra un campo e l’altro, LINES TERMINATED BY “\r\n” indica come viene indicato l'”a capo” nel file, solitamente se proviene da ambiente Windows si usa “\r\n”, se proviene da sistemi Unix like si usa “\n”, IGNORE 1 LINES indica quante righe de saltare prima di inserire i dati, in questo caso una perché si suppone che in testa ci siano i nomi dei campi.

Facciamo un esempio di file .csv e un esempio di tabella mysql.

Supponiamo che il file csv sia composto da 3 campi: nome, cognome, indirizzo:

“nome”;”cognome”;”indirizzo”
“gino”;”gini”;”via dei platani 8″
“luigi”;”rossi”;”via dei pini 3″

La tabella potrebbe essere del tipo:

CREATE TABLE anagrafica (
id int(3) NOT NULL auto_increment PRIMARY KEY,
nome varchar(100) default NULL,
cognome varchar(150) default NULL,
indirizzo varchar(150) default NULL
)ENGINE=MyISAM;

Se vogliamo far uso di uno script PHP che carica i dati dal file csv “dati.csv” dovrà essere:

<?
// Dichiaro le variabili per la connessione al database
$server="nome_server";
$user="nome_user";
$passwd="password";
$database="nome_DB";

// Mi connetto al server Mysql e seleziono il DB da usare
$db = @mysql_connect($server, $user, $passwd);
@mysql_select_db($database);

// Creo una variabile con il file CSV Mda importare
$CSV_file = "dati.csv";

// Eseguo la query per l'importazione
mysql_query("LOAD DATA LOCAL INFILE '" . $CSV_file . "' INTO TABLE mia_tabella
 FIELDS TERMINATED BY ";" LINES TERMINATED BY "\\r\\n" IGNORE 1 LINES;');

// Chiudo la connessione al DB
mysql_close($db);
?>

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: