2017-08-01 1 views
1

Je suis nouveau à codiginter .Lorsque je charge il donne l'erreur de mémoire avec le message suivant que dois-je faire maintenant3.x Codeigniter me donne une erreur fatale erreur de la mémoire a permis d'allouer essayé de 65488 octets

taille maximale autorisée pour la mémoire de 134217728 octets épuisés (essayé d'allouer 65488 octets) dans C: \ xampp \ htdocs \ ci \ system \ database \ DB_driver.php en ligne 1968

+0

ajouter le texte d'erreur – user7294900

+2

Bonjour et bienvenue à StackOverflow. Veuillez prendre le temps de lire la page d'aide, en particulier les sections intitulées ["Quels sujets puis-je poser à propos d'ici?"] (Http://stackoverflow.com/help/on-topic) et ["Quels types de questions dois-je évitez de demander? "] (http://stackoverflow.com/help/dont-ask). Et plus important, s'il vous plaît lire [la liste de contrôle de la question Stack Overflow] (http://meta.stackexchange.com/q/156810/204922). Vous pouvez également en savoir plus sur [Exemples minimaux, complets et vérifiables] (http://stackoverflow.com/help/mcve). – kishor10d

+0

Ajouter le code associé à la question qui a conduit à l'erreur. Contrôleur, modèle, tout écrit personnalisé inclus dans cette demande. – Tpojka

Répondre

0

Vous avez créé un scénario de récursion infinie. Rechercher:

  • Database_Model et Session_Model étendre Modèle.
  • Lorsque vous instancez Database_Model, le constructeur hérité de Model va attribuer deux objets supplémentaires au constructeur, et $this->session.
  • Ces nouveaux objets héritent également de Model, donc ils vont également leur propre Database_Model et Session_Model.
  • Et cela va à l'infini ...

Solution:

  • La manière correcte est de modifier votre fichier php.ini. Modifier memory_limit à votre demande.

    A partir de votre question, 128M (qui est le default limit) a été dépassé, donc il y a quelque chose de grave avec votre code tel qu'il ne devrait pas prendre beaucoup.

    Si vous savez pourquoi il en faut autant et que vous voulez lui permettre de régler memory_limit = 512M ou supérieur et vous devriez être bon.

    Toutefois, essayez d'éviter l'utilisation de la mémoire énorme, si le nombre d'utilisateurs est va être plus. De plus, si vous surveillez votre serveur, vous verrez qu'il est maintenant utilisant probablement la plus grande partie de la RAM et même l'échange sur le disque.

    Vous devriez probablement essayer de localiser le bogue exact dans votre code et le corriger.

Espérons que cela est utile

+0

Pas besoin d'étendre memory_limit, je pense qu'il doit vérifier les requêtes qu'il déclenche. – kishor10d

+0

oui, il devrait vérifier à nouveau son code, c'est ce que j'ai ajouté maintenant dans ma réponse @ kishor10d – Ahmad

+0

comment vous venez de connaître son scénario récursif. Il n'a rien fourni en entrée. – kishor10d