Load data infile MYSQL

Guide Mysql di Lazzeri Simone
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
Load data infile MYSQL
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 TXT

Il 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]

Condividi l'articolo

Facebook Twitter Twitter Pinterest

. OK