IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Fermeture de ressources (cnx aux base de données)


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut Fermeture de ressources (cnx aux base de données)
    Bonsoir,

    Je vis déployer un site web très prochainement ais je veux m'assurer d'une chose avant de le mettre en prod.

    Je veux que mon site fonctionne du tonnerre et je ne veux pas dans le même temps, que le serveur d'hébergement soit trop solliciter et trop chargé.

    Est-ce en PHP, pour les connexions aux bases de données il y a une espèce de garbage collector ? Par exemple si j'ouvre une connexion à une base de donnée avec mysql_connect(), est-ce que il faut libérer la ressource par un mysql_close() ou si la ressource se libère au bout d'un certain temps ? Ou si, au contraire, la ressource n'est pas libérée et surcharge le serveur ?

    Même chose pour mysql_connect() et mysql_query() ?

    (Bien que ces fonctions en soient plus supporter en PHP5.5, mais c'est encore un autre sujet.)


    Merci.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut
    Bonjour,

    OK, merci bien. J'ai une autre question. J'aurai pu ouvrir un nouveau sujet dans un meilleur sous-forum, mais je le fais ici.

    Je suis sous Win8 et j'utilise EasyPHP version 13.1. Je n'ai aucun souci lorsque je travaille avec FifreFox mais en revanche *tous* se fige avec les autre browser (IE et Chrome) et le serveur ne répond plus. J'ai aussi ca avec la version précédente de EasyPHP (toujours sous Win8)

    Pour diverses raisons il faut que j'utilise IE. Donc je suis un peu gêné. J'ai pensé que c'était le serveur Apache qui se "figeait" mais c'est peut-être l'interpréteur/moteur PHP. C'est peut-être Win8, je ne sais pas bien. Je n'avis pas ca sous WinXP

    J'ai été obligé pour bien démarrer EasypHP de faire une manip sous Win8: il a fallut que je paramètre l'exécutable EasyPHP pour qu'il s'exécute en mode Win7 (je sous suis Win8) pour des raison de compatibilité. Sinon, EasyPHP ne fonctionne pas.

    Une idée ? Poster sur le forum EasyPHP ?

    Merci

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Normalement, PHP se contrefiche du navigateur avec lequel tu accèdes aux pages, sauf éventuellement lors de l'envoi de données (genre formulaire ou autres données du genre)

    Est-ce que le problème se produit aussi sur une page de base (genre avec juste <?php phpinfo(); dedans) ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut
    Celira,

    Merci d'avoir pris le temps de me répondre.

    Je n'avais pas investigué plus que cela mon code source pensant que toutes mes pages qui ne fonctionnaient pas (ou plus exactement qui se figeaient sous IE) étaient du a un bug, soit de IE, soit de Win8, soit de Apache soit du moteur PHP, tout en ayant observé que cela fonctionnait bien sur FF.

    Après quelques tests, je m'aperçois que ce qui bloque c'est le fait que je n'ai pas remplacé la fonction session_regsirer() (qui n'existe plus dans la dernière version de PHP 5) par la fonction session_start(). Je m'étais juste contenté de la fonction sesison_register en commentaire.

    Ce qui est curieux c'est que sur certaines pages, bien qu'ayant fait ce changement, les pages continuaient a se figer. Mais plus maintenant.

    Cela semble donc résolue. Reste a comprendre pourquoi sous FF cela fonctionnait bien mais pas sous IE.

  6. #6
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut
    Bonsoir,

    J'avais fermé cette discussion et je l'avais taguée "Résolut". Je la re-ouvre si vous le voulez bien.

    Plusieurs problèmes avec EsayPHP, IE10 et les bases de données, je n'ouvre pas de nouveau thread, je rajoute à celui-ci.

    1 - J'utilise EasyPHP DevServer 13.1 VC9. J'ai expliqué un peu plus haut que a certains moments Internet Explorer "mouline" : j'ai cliqué sur un lien, ca mouline et rien ne sort et sur l'onglej, il y a un petit cercle qui tourne dans le vie. Je clique alors une seconde fois sur le lien souvent (pas toujours) ma page s'affiche. Je n'ai aucun accès à ma base de donnée MySQL ni aucune session. J'en avais parlé plus haut en pensant que c'était la fonction session_register() et l'absence de session_start(), mais il n'en est rien.

    Or, IE10 est parfait pour la navigation Internet. Je n'ai absolument aucun problème. Lorsque j'utilise Firefox ou Chrome je n'ai pas ces problèmes.

    Il y a donc un sérieux problème de compatibilité entre IE10 sous Win8 et EasyPHP DevServer 13.1 VC9. C'est ma conclusion mais j'en toucherai un mot sur le forum EasyPHP.


    2 - Seconde question: j'utilise toujours IE10 avec EasyPHP DevServer 13.1 VC9 sous Win8. Je travaille maintenant avec des accès à une base de données MySQL. Cette dernière version de EasyPHP contient PHP5.3 : dans cette version les fonctions mysql_query() etc. ne sont plus supportées. J'ai donc utilisé les fonctions "mysqli". Ca fonctionne mais encore une fois, très très mal. C'est pire que dans la question 1, puisque même après un second ou un troisième click ca ne fonctionne pas toujours. Les accès sont extrêmement long, ca mouline, je suis obligé de redémarrer le serveur PHP/MySQL, etc. Et ce ne fonctionne pas toujours. Mais, à certains moments ca fonctionne même si c'est très lent.

    Or je n'avais pas ces lenteurs extrême avec la version précédente d'EasyPHP (version 12.1) avec laquelle j'utilisais les fonction mysql_query() devenu obsolète avec la version 5.3 de PHP. Par conséquent je pose la question: est-ce que ces fonction mysqli sont réputées plus lente que les fonctions obsolètes msql traditionnels ? Il y a-t-il des benchmark ?

    Maintenant, si j'utilise Firefox, je n'ai pas de problèmes. Cela fonctionne parfaitement bien, au détails près, encore une fois, que j'ai l'impression que c'est un peu plus lent (à requête SQL égale) qu'avec les versions mysql traditionnelles (obsolètes).

    Il y a t-il un moyen d'accélérer les requêtes ? Je ne pense pas que mes requête soit trop lourds (juste des requête légères, pour tester) mais j'ai l'impression que ce sont les temps de connexion au serveur et à la base de données, plus que les requêtes elle-même. Je pourrais faire mini-benchmark et comparer les temps d'accès.

    Est-ce que je pourrais faire des connexions persistantes aux bases de données pour économiser une connexion aux bases de données à chaque page ? Si oui, comment faire ?

    Merci, j'ai été long.


    Edition : pour la question des connexions persistantes aux bases de données, non, pour avoir pris des infos sur ce truc, cela me parait très risqué si elle ne sont pas fermées. Je ne vais pas tenter. En revanche, les benchmark sur mysqli m'intéresseraient, s'il y en a à de dispos.

  7. #7
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut
    Bonsoir,

    Mon dernier message est long et je comprends que personne ne s'y soit risqué.

    J'utilise EasyPHP-DevServer-13.1VC9. C'est une version "de développement". Est-il possible que cette version soit un peu plus lente que la version de production ? (si tant est que Easy PHP puisse être utilisé en production)

Discussions similaires

  1. Accès aux bases de données via les objets de Borland (Bdpxx)
    Par agodinasandrien dans le forum Delphi .NET
    Réponses: 9
    Dernier message: 26/09/2005, 14h00
  2. Mysql Configuration nombre de connexion aux bases de données
    Par Thierry8 dans le forum Installation
    Réponses: 2
    Dernier message: 15/09/2005, 20h54
  3. Pilote d'accés aux bases de données
    Par aragom dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/05/2005, 10h06
  4. Accès aux base de données sous Delphi 7 Edition Studio Perso
    Par renorx dans le forum Bases de données
    Réponses: 4
    Dernier message: 16/02/2005, 14h24
  5. Accès aux bases de données Access
    Par xela dans le forum C++Builder
    Réponses: 3
    Dernier message: 15/12/2004, 09h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo