Fatal error: Call to a member function fetch()

Un problème à en croquer Clémentine

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour,

J'ai un problème au niveau d'une requête en MySQL. Voici mon code PHP :

messages.php

1
2
3
4
5
6
7
8
9
$reponse = $bdd->query('SELECT pseudo, message, ID, timedate FROM '.$_SESSION['bddparam'].' ORDER BY ID DESC LIMIT '.$pageM.', '.$pagesMax.'');
/* $_SESSION['bddparam'] existe et la table existe aussi dans la bdd
$pageM et $pagesMax sont des nombres entiers
$bdd sont mes identifiants qui fonctionnent
 Ligne 16 : */
while ($donnees = $reponse->fetch()){
/* Fin ligne 16
Mon code */
}

Et l'erreur obtenue :

Fatal error: Call to a member function fetch() on boolean in /www/chat/messages.php on line 16

Je ne vois pas d'où peut venir l'erreur. Je pense que $reponse doit être égal à false mais pourquoi ?

Merci d'avance,

Noam

Édité par unpeudetout

http://q.gs/5770232/astucesweb-zds - Mon site qui aide à développer en se simplifiant la vie

+0 -0
Staff

Cette réponse a aidé l'auteur du sujet

Bonjour,

je déplace lesujet dans le bon forum aussi vite que je peux, mais avant, permets-moi de te répondre :

1
2
<?php
$reponse = $bdd->query('SELECT pseudo, message, ID, timedate FROM '.$_SESSION['bddparam'].' ORDER BY ID DESC LIMIT '.$pageM.', '.$pagesMax);

fait donc appel aux colonne pseudo, message, ID et timedate : il faut que ces colonnes existent dans la table associée.

Ensuite mettre le champ dans la variable session n'est pas vraiment une bonne pratique. Mais je suis curieux de savoir ce que vaut cette variable (fais un var_dump) dessus.

Enfin, quand on développe, on aime bien que les erreurs s'affichent il faut donc demander à pdo de les afficher.

Ainsi **juste après la ligne où tu as fait new PDO() il faut que tu mettes :

1
2
<?php
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

et il te dira où ta requête est mauvaise.

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte