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.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  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.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  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.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  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, 11h49
  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, 16h49
  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, 13h57
  4. création base de données avec easyphp
    Par Battosaiii dans le forum Débuter
    Réponses: 5
    Dernier message: 29/06/2004, 18h50
  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, 10h12

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