2013-06-19 40 views
13

Tôi đang xử lý mảng cơ sở dữ liệu cũ của php vào cơ sở dữ liệu mới. Các tệp .php dữ liệu có tổng dung lượng lớn khoảng 220 MB.Sử dụng ini_set ("memory_limit", "-1") và vẫn còn thiếu bộ nhớ

Tôi đã chèn những dòng này trong kịch bản để nó sẽ chạy tốt:

ini_set("memory_limit", "-1"); 
set_time_limit(0); 

Đây là cách tôi bao gồm các sản phẩm:

// The exports made by PHPMYADMIN, exported as PHP-Array 
require_once 'export/tx_ttproductsv2_products.php'; 
require_once 'export/tx_ttproductsv2_keyword.php'; 
require_once 'export/tx_ttproductsv2_keywords_in_products.php'; 
require_once 'export/tx_ttproductsv2_typebook.php'; 
require_once 'export/tx_ttproductsv2_typegospel7.php'; 
require_once 'export/tx_ttproductsv2_typemedia.php'; 

Khi kịch bản đang cố gắng để yêu cầu họ Tôi gặp lỗi này:

PHP Fatal error: Out of memory (allocated 880541696) (tried to allocate 469762048 bytes) in ......

Tôi đã cài đặt EasyPHP cục bộ chạy trên x64 Win 7 SP1. Tôi có bộ nhớ 6 GB, Intel i5.

Làm cách nào để có thể chạy PHP để chạy toàn bộ tập lệnh mà không có lỗi bộ nhớ?

+0

Cố gắng tăng 'upload_max_filesize' &' post_max_size'? –

+0

@KhawerZeshan, tôi không tải lên mọi thứ? Hay tôi thấy điều đó sai? – Mathlight

+0

xuất khẩu được thực hiện bởi PHPMYADMIN là tệp hay gì? –

Trả lời

11

Giới hạn bộ nhớ đến từ HĐH chứ không phải từ bản thân PHP.

kịch bản phân bổ 800MB và bạn đang cố gắng để phân bổ thêm 500MB

Cố gắng chạy kịch bản trên hệ điều hành 64bit với 64 bit PHP.

+0

Điều đó có lẽ sẽ sửa chữa rất nhiều, nhưng tôi không thể kiểm tra nó ngay bây giờ (tôi cần nó hoạt động ngay lập tức). – Mathlight

+1

Giải pháp tốt nhất là để bạn lấy dữ liệu và xử lý dữ liệu theo khối thay vì tải tất cả vào bộ nhớ và sau đó xử lý. –

+0

Tôi biết, tôi đã chia nhỏ nó thành 3 phần (mã hóa ngay bây giờ), và điều đó sẽ làm việc tốt để ... Cảm ơn bất cứ điều gì vì sự giúp đỡ và ý tưởng;) – Mathlight