Il comando LOAD DATA INFILE è una funzionalità molto importante di Mysql seppur poco conosciuta, che permette di essere applicata per agevolare l'esecuzione di query contenente molti dati, come ad esempio l'import di molti record all'interno d...
Continua a leggere
Presupponiamo di dover aggiungere al nostro database MYSQL un numero molto alto di record, per ottimizzare al meglio l'esecuzione dell'operazione il metodo migliore sarebbe quello di utilizzare il comando
LOAD DATA INFILE.
Questa funzionalità può andare a leggere i dati da importare ad esempio direttamente da un file di testo (.txt) quindi caricarli in maniera estremamente rapida all'interno del database.
Ecco qui un esempio pratico di come utilizzare il comando:
[CODE]mysql_query("LOAD DATA INFILE '".$_SERVER["DOCUMENT_ROOT"]."nome_file.txt' INTO TABLE nome_tabella");[/CODE]
Il funzionamento è estremamente semplice, eseguo la classica
mysql_query al cui interno comunico il comando da utilizzare e successivamente specifico all'interno degli apici il percorso del file comprensivo di ROOT, che nell'esempio richiamo tramite la variabile globale di php .$_SERVER["DOCUMENT_ROOT"]. Infine indico di caricare il tutto all'interno della tabella desiderata.
Struttura del file TXTIl file che si vuole importare ovviamente deve essere strutturato in un determinato modo per far si che venga elaborato correttamente,
di default
ogni record deve essere su una riga distinta,
ed ogni campo separato da un tab.
E' possibile scaricare un esempio del file in questione
cliccando qui.
Load data infile Access Denied Se riscontrate questo errore, molto probabilmente il vostro account non possiede i permessi necessari per eseguire tale comando (come ad esempio avviene sugli hosting aruba), per risolvere i problemi in genere è sufficiente aggiungere LOCAL al comando, nel seguente modo:
[CODE]mysql_query("LOAD DATA LOCAL INFILE '".$_SERVER["DOCUMENT_ROOT"]."nome_file.txt' INTO TABLE nome_tabella");[/CODE]