Page 1 sur 1

nécessité de reconnexion à la base pour chaque requête

Posté : 08 juil. 2016, 06:36
par claude99
Bonjour,
Je suis passé en class PDO pour les sites que je gère. J'ai constaté que chez un fournisseur d'accès (contrairement à ce qui se passe chez un autre et à ce qui se passe en local), je suis obligé de me reconnecter à la base à chaque requête:
Exemple:

Code : Tout sélectionner

include("connexion.php"); $query_count="SELECT count(*) FROM critmus_mvt;"; $res_count=$bdd->query($query_count); $nb=$res_count->fetchColumn(); echo "<br>nb est: ",$nb; include("connexion.php"); $query="SELECT * FROM critmus_mvt;"; $res=$bdd->query($query); $premiere_ligne=$res->fetch(); $numero_mvt=$premiere_ligne['numero_mvt']; echo "numero_mvt est: ",$numero_mvt;
Ce code fonctionne bien comme ça, mais si je supprimer la reconnexion entre les 2 requêtes, j'ai un magnifique message: Fatal error: Call to a member function fetch() on a non-object...

Précision: voilà mon include de connexion:

Code : Tout sélectionner

try { $bdd = new PDO('mysql:host=xxx;charset=utf8', 'xxxx', 'xxxxi',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); }
J'ai l'intention de demander des explications à cet hébergeur, mais auparavant, j'aimerais savoir si certains sur le forum ont une explication. C'est peut-être mon code qui n'est pas orthodoxe. Merci pour vos réponses.

Re: nécessité de reconnexion à la base pour chaque requête

Posté : 08 juil. 2016, 08:59
par moogli
salut,

il n'est, normalement pas nécessaire de se reconnecter, heureusement c'est souvent l'opération la plus coûteuse (en temps) dans les requêtes que nous réalisons.

donc pas besoin du second include("connexion.php").

Quand au reste, perso je ne mettrais un die, brutal, comme ça mais afficherais une page un peu plus "sexy" pour l'utilisateur qui se fout du message d'erreur (il n'y a que quoi que ce intéresse et d'éventuelles personnes malfaisante ;) ).

Pense a fermer les curseurs lorsque tu n'en a plus besoin => $res->closeCursor()
la doc de closeCursor()


@+

Re: nécessité de reconnexion à la base pour chaque requête

Posté : 11 juil. 2016, 17:06
par claude99
Donc, il semble bien qu'il y ait un problème au niveau du serveur chez mon hébergeur. Merci pour le conseil concernant les messages d'erreurs. Quelqu'un a-t-il une idée de cette anomalie obligeant à se reconnecter à chaque fois?

Re: nécessité de reconnexion à la base pour chaque requête

Posté : 11 juil. 2016, 17:33
par @rthur
Bonjour,

Dans ton code précédent, si tu met en commentaire la 2ème ligne "include("connexion.php");" , tu as un message d'erreur ?!?

Je doute très fortement que ce soit ça le problème donc revérifie bien et fais une page de test avec uniquement le code minimale pour mettre en valeur le problème.

Re: [RESOLU] nécessité de reconnexion à la base pour chaque requête

Posté : 15 juil. 2016, 17:57
par claude99
Apparemment, tout fonctionne de nouveau. Je suppose que c'était une anomalie transitoire au niveau du serveur. Merci tout de même pour vos réponses.