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
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
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 .
Mettez ceci en haut de votre script:
ini_set('max_execution_time', 300);
Cela fera 5 minutes.
Vous pouvez utiliser ini_set au début de votre application.
ini_set('max_execution_time', *number of seconds here*); //300 seconds = 5 minutes