2012-07-11 35 views
6

Tengo un archivo csv, uno grande, 30 000 filas. Intenté importarlo usando el archivo LOAD, etc., desde la terminal, como encontré en google, pero no funcionó. Estaba haciendo la importación, pero mi tabla llegó a 30 000 filas de celdas NULL.Importar archivo csv grande usando phpMyAdmin

Después de eso probé phpMyAdmin y descubrí que mi csv era demasiado grande. Lo he dividido en 5 usando CSV Splitter. He hecho la importación para el primer archivo. Todo fue genial Intenté importar el segundo, pero obtuve el siguiente error:

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 error 1064 a veces.

¿Sabes por qué y cómo puedo solucionarlo? Gracias.

Respuesta

20

Aumente el límite de memoria y el tiempo de secuencia de comandos de su php, esto se debe a que está ejecutando la instrucción mysql a través del servidor php.

compruebe el archivo php.ini para este vars:

memory_limit 
max_execution_time 

Pero de todos modos lo haría a través del cliente MySQL (terminal), comprobar 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

Gracias por su asesoramiento. He hecho esto, pero sigue siendo el mismo problema. ¿Alguna otra idea? – duracell

+0

¿cuál es su configuración? me refiero a memory_limit y max_execution_time –

+1

De 128 he cambiado a 512 y de 1024 ... Y de 30 a 60. – duracell

1

Tengo este problema al intentar importar un archivo grande usando phpMyAdmin, y tampoco puedo usar el comando en la versión que estoy usando Para resolver esto usé this CSV editor y dividí el archivo en archivos más pequeños. Funcionó bien cuando importé cada porción por separado.

Cuestiones relacionadas