2013-08-15 19 views
7

Ho un documento XML che ha circa 48.000 bambini (~ 50 MB). Eseguo una query INSERT MYSQL che crea nuove voci per ognuno di questi bambini. Il problema è che ci vuole molto tempo a causa delle sue dimensioni. Dopo che è stato eseguito ricevo questoImposta il tempo massimo di esecuzione in MYSQL/PHP

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

Come faccio a impostare il tempo massimo di esecuzione di essere senza limiti?

Grazie

+0

Guardate questa risposta, questo probabilmente vi darà dei suggerimenti per evitare questo problema in primo luogo. http://stackoverflow.com/questions/911663/parsing-huge-xml-files-in-php Questo ha diversi approcci. – skv

risposta

10

Si può fare impostando set_time_limit in voi codice php (impostato a 0 per nessun limite)

set_time_limit(0); 

o modificare il valore di max_execution_time direttamente nel tuo php.ini

;;;;;;;;;;;;;;;;;;; 
; 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 

Oppure cambiandolo con ini_set()

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

ma si noti che per questa terza opzione:

max_execution_time

Non è possibile modificare questa impostazione con ini_set() durante l'esecuzione in modalità provvisoria . L'unica soluzione è disattivare la modalità provvisoria o modificando il limite di tempo nel php.ini.

Fonte www.php.net

+0

Grazie mille! La terza opzione sembrava funzionare. –

+0

Benvenuti nella comunità SO;) –

0

Mettete questo nella parte superiore del vostro script:

ini_set('max_execution_time', 300); 

che ti fanno 5 minuti.

+0

se lo imposto a 0 ci vorrà tutto il tempo che vuole? –

+0

Lo imposterà su illimitato. – Tdelang

0

È possibile utilizzare ini_set all'inizio dell'applicazione.

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

è possibile impostare il tempo massimo di esecuzione in MySQL/PHP. è così facile.

Per impostare il tempo di esecuzione massimo in un singolo file PHP, inserire questo codice subito dopo il primo tag php di apertura.

ini_set(‘max_execution_time’, 0) 

Per impostare il tempo di esecuzione massimo nel file php.ini. È possibile impostare secondo il vostro bisogno.

max_execution_time=360 //360 seconds = 6 minutes 

Per impostare il tempo di esecuzione massimo nel file htaccess.

php_value max_execution_time 0 

È inoltre possibile read step by step here.

Problemi correlati