2012-07-11 14 views
6

Tôi có tệp csv, tệp lớn, 30 000 hàng. Tôi đã cố gắng nhập nó bằng cách sử dụng LOAD tập tin vv .. từ thiết bị đầu cuối, như tôi tìm thấy trên google, nhưng nó đã không hoạt động. Nó đã được thực hiện việc nhập khẩu nhưng bảng của tôi đã đến 30 000 hàng của các tế bào NULL.Nhập tệp csv lớn bằng phpMyAdmin

Sau đó tôi đã thử phpMyAdmin và ở đó tôi phát hiện ra rằng csv của tôi quá lớn. Tôi đã chia nó thành 5 bằng cách sử dụng CSV Splitter. Tôi đã thực hiện việc nhập tệp đầu tiên. Mọi thứ trở nên tuyệt vời. Hơn tôi đã cố gắng để nhập một trong những thứ hai, nhưng tôi đã nhận lỗi này:

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

hoặc 1064 lỗi đôi khi.

Bạn có biết tại sao và làm cách nào tôi có thể giải quyết nó? Cảm ơn bạn.

Trả lời

20

Tăng giới hạn bộ nhớ và thời gian tập lệnh php của bạn, đó là beacause thực hiện lệnh mysql của bạn thông qua máy chủ php.

Kiểm tra file php.ini của bạn cho việc này vars:

memory_limit 
max_execution_time 

Nhưng dù sao tôi sẽ làm điều đó thông qua các khách hàng mysql (terminal), kiểm tra 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

Cảm ơn bạn đã được tư vấn. Tôi đã làm điều này nhưng vẫn còn cùng một vấn đề. Bất kỳ ý tưởng nào khác? – duracell

+0

cấu hình của bạn là gì ??? tôi có nghĩa là memory_limit và max_execution_time –

+1

Từ 128 tôi đã thay đổi thành 512 và hơn 1024 ... Và từ 30 đến 60. – duracell

1

Tôi gặp sự cố này khi cố nhập một tệp lớn bằng phpMyAdmin và tôi cũng không thể sử dụng lệnh trong phiên bản mà tôi đang sử dụng. Để giải quyết vấn đề này, tôi đã sử dụng this CSV editor và chia tệp thành các tệp nhỏ hơn. Làm việc tốt khi tôi nhập từng đoạn riêng biệt.