Importare un file CSV in una tabella di MySql tramite shell, possiamo utilizzare uno script php o di altro linguaggio, vediamo in PHP come funziona. Apriamo il file: $fcontents = file ('./spreadsheet.csv');
Cicliamo nel file fino alla fine di quest’ultimo for($i=0; $i<sizeof ($fcontents); $i++) {
Individuiamo le linee ed i campi, in questo casi i campi sono separati da tab (\t) $line = trim($fcontents[$i]); $arr = explode("\t", $line);
Adesso non resta che generare SQL adatto per inserire i dati in mysql: $sql = "insert into TABELLA values ('". implode("','", $arr) ."')"; mysql_query($sql);
Dove per tabella si intende il nome della tabella nel DB, la tabella in questione deve avere lo stesso numero di campi, indipendentemente dal nome dei campi. Ricapitolando lo script per intero è questo: $fcontents = file ('./spreadsheet.csv'); for($i=0; $i<sizeof ($fcontents); $i++) { $line = trim($fcontents[$i]); $arr = explode("\t", $line); $sql = "insert into TABELLA values ('". implode("','", $arr) ."')"; mysql_query($sql); }
Via ModWest On Air: God Save the Queen (Sex Pistols)]]>
Nessun commento “Importare un file csv in Mysql con PHP”
Enrico non per fare il pignolo della situazione ma il file lo rinominerei in .csv per evitare equivoci.
In questo modo ti pari da possibili domande su file di Office 2007. O documenti non proprio standard.
Vedi che se non avessi i miei lettori farei un mucchi di baggianate, many tnx, corretto
Grazie mille per questo articolo, non puoi immaginare quanto mi è stato utile, senti scusa se ti do fastidio ma se volessi mettere tutto cio’ ke sta tra una virgola ed un altra in delle variabili come potrei fare ?
cioè queste cose prese dal csv
ciccio, pallo, postina, sup -> var diverse tra loro in php
???????????????
Grazie mille in anticipo
Scusa ma se nel csv che devo importare ho lettere accentate (nella forma vocale+apostrofo) il tuo codice funziona?Io c’ho provato e non mi va.
Come si può fare?
Grazie
Ciao