Voilà, depuis mes début, (mysql_*) je survole le principe de fermer ça connexion DB, via par exemple $db->closeCursor();

Maintenant, j'ai plusieurs questions:

  • C'est quoi l'intérêt ?

  • Quels sont les problèmes les plus couramment rencontrer dans le faite de NE PAS clôturées ces instances PDO ?

  • Pouvez vous faire une conclusion simple, mais toute fois détaillé, à titre de résumé

Personnellement, en from scratch, je n'es pas pour mémoire de l'avoir déjà fais, n'y voyant pas l'intérêt.

2 réponses


Glaived
Auteur
Réponse acceptée

Voici donc un compte-rendu d'une discution avec CHAAK sur #Grafikart

<CHAAK> closeCursor ne sert pas a fermer la connexion
<CHAAK> ça sert à remettre le curseur a 0 si tu as parcouru un bout de ton tableau de résultat mais que tu n'es pas allé au bout
<CHAAK> au cas ou tu veux le reparcourir plus loin dans ton code
<Glaived> CHAAK mais alors faut-il fermer sa connexion PDO, et si oui comment ?
<CHAAK> unset($pdo);
<Glaived> CHAAK et l'intérêt à cela ?
<CHAAK> 9 fois sur 10 ça sert à rien de fermer la connexion puisqu'elle se ferme automatiquement à la fin du script
<CHAAK> tu fermes explicitement la connexion si tu as un traitement long a faire sur tes données avant de les afficer
<CHAAK> ce qui est rarement le cas :)
<Glaived> CHAAK "chaque fois que vous avez fini de traiter le retour d'une requête, afin d'éviter d'avoir des problèmes à la requête suivante. Cela veut dire qu'on a terminé le travail sur la requête." donc c'est faux ? puisque à chaque requete ça tej' l'objet et donc ont est remis sur la première itération non ?
<CHAAK> Glaived c'est uniquement pour les requêtes préparées et si tu n'as pas parcouru le set en entier (cf ma premiere phrase)
<Glaived> CHAAK ouais effectivement, mais comme tu la dis c'est dans de rare cas, et je suis même pas sûr que, dans l'exemple d'une ORM from scratch, le closeCursor est lieu d'etre

En conclusion, ça peu être utile dans le cas ou ont a un traitement long à faire sur des données avant de les afficher, par exemple, comme nous dit CHAAK.

Salut,

Merci pour les précisions.