2012-07-11 15 views
6

Mam plik CSV, duży, 30 000 wierszy. Próbowałem zaimportować go za pomocą pliku LOAD itp. Z terminala, jak znalazłem w google, ale to nie zadziałało. Robił import, ale mój stół trafił do 30 000 wierszy komórek NULL.Importowanie dużego pliku CSV przy użyciu phpMyAdmin

Po tym spróbowałem phpMyAdmin i tam dowiedziałem się, że mój csv był zbyt duży. Podzielam go na 5 za pomocą CSV Splitter. Zrobiłem import do pierwszego pliku. Wszystko poszło świetnie. Niż próbowałem zaimportować drugi, ale dostałem błąd:

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

lub czasami błąd 1064.

Czy wiesz, dlaczego i jak mogę to rozwiązać? Dziękuję Ci.

Odpowiedz

20

Zwiększyć limit pamięci php i czas skryptu, to jest po twojemu wykonaniu instrukcji mysql przez serwer php.

Sprawdź swój plik php.ini do tego vars:

memory_limit 
max_execution_time 

Ale i tak chciałbym to zrobić za pośrednictwem klienta mysql (terminal), sprawdź 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

Dziękuję za poradę. Zrobiłem to, ale wciąż ten sam problem. Jakieś inne pomysły? – duracell

+0

jaka jest twoja konfiguracja ??? mam na myśli memory_limit i max_execution_time –

+1

Od 128 zmieniłem na 512, a później na 1024 ... I od 30 do 60. – duracell

1

Mam ten problem podczas próby zaimportowania dużego pliku przy użyciu phpMyAdmin, a także nie mogę użyć polecenia w wersji z którego korzystam. Aby rozwiązać ten problem, użyłem this CSV editor i podzielono go na mniejsze pliki. Dobrze się stało, gdy importowałem każdą porcję osobno.