2013-08-15 43 views
7

Tôi có một tài liệu XML có khoảng 48.000 trẻ em (~ 50MB). Tôi chạy một truy vấn INSERT MYSQL tạo các mục mới cho mỗi một trong số các trẻ này. Vấn đề là phải mất rất nhiều thời gian do kích thước của nó. Sau khi nó được thực thi tôi nhận đượcĐặt thời gian thực hiện tối đa trong MYSQL/PHP

Fatal error: Maximum execution time of 60 seconds exceeded in /path/test.php on line 18

Làm thế nào để thiết lập thời gian thực hiện tối đa là giới hạn?

Cảm ơn

+0

Nhìn vào câu trả lời này, điều này có thể sẽ cung cấp cho bạn các gợi ý để tránh vấn đề này ngay từ đầu. http://stackoverflow.com/questions/911663/parsing-huge-xml-files-in-php Điều này có nhiều cách tiếp cận khác nhau. – skv

Trả lời

10

Bạn có thể làm cho nó bằng cách thiết lập Hàm set_time_limit trong bạn mã php (đặt thành 0 để không giới hạn)

set_time_limit(0); 

Hoặc thay đổi giá trị của max_execution_time trực tiếp trong php.ini của bạn

;;;;;;;;;;;;;;;;;;; 
; Resource Limits ; 
;;;;;;;;;;;;;;;;;;; 

; Maximum execution time of each script, in seconds 
; http://php.net/max-execution-time 
; Note: This directive is hardcoded to 0 for the CLI SAPI 
max_execution_time = 120 

Hoặc thay đổi nó bằng ini_set()

ini_set('max_execution_time', 120); //120 seconds 

nhưng lưu ý rằng cho 3 tùy chọn này:

max_execution_time

Bạn không thể thay đổi cài đặt này với ini_set() khi chạy trong chế độ an toàn . Cách giải quyết duy nhất là tắt chế độ an toàn hoặc bằng cách thay đổi giới hạn thời gian trong php.ini.

Nguồn www.php.net

+0

Cảm ơn rất nhiều! Tùy chọn thứ 3 xuất hiện để hoạt động. –

+0

Chào mừng bạn đến với cộng đồng SO;) –

0

Đặt này ở phía trên cùng của kịch bản của bạn:

ini_set('max_execution_time', 300); 

Điều đó sẽ làm cho nó 5 phút.

+0

nếu tôi đặt thành 0 sẽ mất bao nhiêu thời gian tùy thích? –

+0

Nó sẽ đặt nó thành không giới hạn. – Tdelang

0

Bạn có thể sử dụng ini_set khi bắt đầu ứng dụng của mình.

ini_set('max_execution_time', *number of seconds here*); //300 seconds = 5 minutes 
0

Bạn có thể thiết lập thời gian thực hiện tối đa trong MYSQL/PHP. nó rất dễ.

Để đặt thời gian thực thi tối đa trong một tệp PHP, hãy đặt mã này ngay sau thẻ mở đầu tiên của bạn.

ini_set(‘max_execution_time’, 0) 

Để đặt thời gian thực thi tối đa trong tệp php.ini. Bạn có thể đặt theo yêu cầu của bạn.

max_execution_time=360 //360 seconds = 6 minutes 

Để đặt thời gian thực thi tối đa trong tệp htaccess.

php_value max_execution_time 0 

Bạn cũng có thể read step by step here.

Các vấn đề liên quan