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 :

Fermer proprement la base de donnée avec l'api pdo [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Invité
    Invité(e)
    Par défaut Fermer proprement la base de donnée avec l'api pdo
    Bonjour,

    Pour le moment je fais comme ceci (la partie en rouge ferme la bse de donnée):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $pdo = new PDO('mysql:host=xxx;dbname=xxx', 'xxx', 'xxx', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
    
    $query = "SELECT ... ";
    $result = $pdo->query($query);
    ...
    $result->closeCursor();
    unset( $pdo );
    Mais plus je cherche, plus je doute que ce soit bien la bonne méthode pour fermer une base de donnée proprement (c'était plus simple avec l'api mysql_). Certaine personnes indique qu'il faudrait utiliser:
    Quelle est la bonne méthode?

    Merci d'avance.

  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
    Par défaut
    Si tu as une vraie raison de vouloir libérer la ressource avant la script du script tu peux effectivement faire quelque chose comme unset($pdo); ; sinon le garbage collector est fait pour ça, il ne te viendrais pas a l'idée de faire un unset sur toutes tes variables.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Libérer la ressource avant la fin du script?
    Tu parles sans doute de ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result->closeCursor();
    Je l'utilise car si la première requête retourne un unique résultat je lance une deuxième requête. J'utilise à nouveau $result pour stocker le résultat.

    Quand au unset, il est fait juste avant l'affichage de la page.

  4. #4
    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
    Par défaut
    Closecursor ne te sert pas : mysql n'est pas concerné par le problème de lignes non recupérées.
    Le unset pas vraiment non plus, tu peux laisser faire le garbage collector.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Comment marche le "garbage collector", c'est une option à activer dans le code php de la page ou c'est fait automatiquement par le serveur ?

    Désolé, je ne maitrise pas trop ça ...

  6. #6
    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
    Par défaut
    Le "ramasse-miette" est automatique et libère toutes les ressources à la fin de ton script y compris les connexions mysql (non permanentes).
    À moins de vouloir explicitement libérer une ressource avant la fin du script (ce qui peut être utile si le script doit faire un traitement long), il n'y a pas lieu de s'occuper de ça.

  7. #7
    Invité
    Invité(e)
    Par défaut
    D'accord, donc je vais simplement supprimer mes lignes en rouge

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. meilleure base de données avec java
    Par mial dans le forum JDBC
    Réponses: 11
    Dernier message: 10/11/2010, 12h49
  2. Problème de base de données avec Zend exception PDO
    Par websurfeur dans le forum Zend Framework
    Réponses: 8
    Dernier message: 20/04/2007, 17h49
  3. Récupérer ma base de donnée avec des tables en .frm uniqueme
    Par Michas dans le forum Administration
    Réponses: 5
    Dernier message: 31/08/2005, 14h57
  4. création base de données avec easyphp
    Par Battosaiii dans le forum Débuter
    Réponses: 5
    Dernier message: 29/06/2004, 19h50
  5. Modifier le nom d'une base de donnée avec erreur sy
    Par mmn dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/11/2003, 11h12

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