web-dev-qa-db-fra.com

Définir le temps d'exécution maximum dans MYSQL / PHP

J'ai un document XML qui compte environ 48 000 enfants (environ 50 Mo). J'exécute une requête INSERT MYSQL qui crée de nouvelles entrées pour chacun de ces enfants. Le problème est que cela prend beaucoup de temps en raison de sa taille. Après exécution, je reçois ce message.

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

Comment définir le temps d'exécution maximal sur illimité?

Merci

8
Harris Geo

Vous pouvez le faire en définissant set_time_limit dans votre code php (mis à 0 pour aucune limite)

set_time_limit(0);

Ou en modifiant la valeur de max_execution_time directement dans votre 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  

Ou le changer avec ini_set () 

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

mais notez que pour cette 3ème option:

max_execution_time 

Vous ne pouvez pas modifier ce paramètre avec ini_set () lorsque vous exécutez en toute sécurité mode. La seule solution de contournement consiste à désactiver le mode sans échec ou en modifiant le fichier limite de temps dans le php.ini.

Source www.php.net

11
Imane Fateh

Vous pouvez définir le temps d'exécution maximum dans MYSQL/PHP. il est si facile.

Pour définir la durée d'exécution maximale dans un seul fichier PHP, placez ce code juste après votre première balise php d'ouverture.

ini_set(‘max_execution_time’, 0)

Pour définir la durée maximale d'exécution dans le fichier php.ini. Vous pouvez définir selon vos besoins.

max_execution_time=360 //360 seconds = 6 minutes

Pour définir le temps d'exécution maximum dans le fichier htaccess.

php_value max_execution_time 0

Vous pouvez aussi lisez étape par étape ici .

0
Rinku

Mettez ceci en haut de votre script:

ini_set('max_execution_time', 300);

Cela fera 5 minutes.

0
Tdelang

Vous pouvez utiliser ini_set au début de votre application.

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