web-dev-qa-db-fra.com

Taille de la mémoire autorisée de 134217728 octets épuisée (tentative d'allocation de 42 octets)

Je récupère l'enregistrement de la table mysql qui retourne plus de 0,2 m de lignes par requête, ce qui prend évidemment beaucoup de mémoire. dans mon cas, j'ai 8 Go installés RAM sur mon système avec SSD 256 Go. Lorsque j'exécute ma page, elle renvoie l'erreur suivante:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 42 bytes) in D:\xampp\htdocs\classes\CRUD.php on line 84   

Je pense que je devrais avoir besoin d'utiliser le filetage au lieu des boucles php sur les lignes du tableau? Peut-être que je me trompe. Toute suggestion/aide sera appréciée.

9
Abdul Rahman

La valeur par défaut de php.ini memory_limit est de 128 Mo. Vous devez soit:

  • Optimisez votre code pour utiliser un quantité normale de données
  • changez memory_limit dans php.ini pour une valeur plus élevée que je ne recommande pas du tout - avec votre approche, vous frapperez à nouveau ce mur
11
Maciej Asembler

Vous pouvez étendre votre mémoire à partir de votre fichier avec la ligne de code suivante:

ini_set('memory_limit','16M');

Ajoutez ce code en haut de votre fichier et ahange 16M pour être ce dont vous avez besoin et qui devrait le faire.

7
Tom Cash