2012-07-11 21 views
6

Ho un file csv, uno grande, 30.000 righe. Ho provato a importarlo usando il file LOAD ecc. Dal terminale, come ho trovato su google, ma non ha funzionato. Stava facendo l'importazione ma il mio tavolo ha ottenuto 30.000 file di celle NULL.Importare file csv di grandi dimensioni utilizzando phpMyAdmin

Successivamente ho provato phpMyAdmin e ho scoperto che il mio CSV era troppo grande. L'ho diviso in 5 usando CSV Splitter. Ho effettuato l'importazione per il primo file. Tutto è andato alla grande Di quanto ho provato a importare il secondo, ma ho ottenuto il tuo errore:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 35 bytes) in C:\xampp\phpMyAdmin\libraries\import\csv.php on line 370

o errore 1064 a volte.

Sai perché e come posso risolverlo? Grazie.

risposta

20

Aumenta il limite di memoria e il tempo di scrittura del tuo php, questo è utile per eseguire l'istruzione mysql tramite il server php.

Controlla il tuo file php.ini per questo vars:

memory_limit 
max_execution_time 

Ma in ogni caso vorrei farlo attraverso il client mysql (terminale), controllare mysql doc

LOAD DATA LOCAL INFILE '/path/to/your/csv/file/csv_file.csv' INTO TABLE database_name.table_name FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; 

Mysql Documentation - Load Data Infile Syntax PHP Documentation - Ini core settings

+0

Grazie per il consiglio. L'ho fatto ma ho ancora lo stesso problema. Altre idee? – duracell

+0

qual è la tua configurazione ??? Voglio dire memory_limit e max_execution_time –

+1

Da 128 ho cambiato in 512 e in 1024 ... E da 30 a 60. – duracell

1

Ho riscontrato questo problema durante il tentativo di importare un file di grandi dimensioni utilizzando phpMyAdmin, e sono anche in grado di utilizzare il comando nella versione che sto usando. Per risolvere questo ho usato this CSV editor e diviso il file in file più piccoli. Ha funzionato bene quando ho importato ogni chunk separatamente.

Problemi correlati