Fatal error: Call to a member function fetch() on a non-object

Résolu/Fermé
suzette - 9 juin 2013 à 19:36
abloinginfo Messages postés 1 Date d'inscription mercredi 31 décembre 2014 Statut Membre Dernière intervention 31 décembre 2014 - 31 déc. 2014 à 12:53
Bonjour,
lorsque je charge ma page dans mon navigateur j'ai cette erreur:
Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\blog\testblog.php on line 30
j'ai bo chercher, je ne vois pas à quoi c'est du.
Voici le code qui pose problème:

25$reponse = $bdd->query('SELECT id, titre, contenu, 
26                    DATE_FORMAT(date, \'%d/%m/%Y à %Hh%imin%ss\') AS dc_fr 
27                    FROM articles 
28                    ORDER BY date_creation DESC');
29
30 while ($donnees = $reponse->fetch())
31{
32?>
33<div class="news">
34    <h3>
35        <?php echo htmlspecialchars($donnees['titre']); ?>
36        <em>le <?php echo $donnees['dc_fr']; ?></em>
37    </h3>
38    
39    <p>
40    <?php
41    // On affiche le contenu du billet
42    echo nl2br(htmlspecialchars($donnees['contenu']));
43    ?>
44   <br />
45    <em><a href="commentaires.php?billet=<?php echo $donnees['id']; 46?>">Commentaires</a></em>
47    </p>
48</div>
49<?php
50} 
51$req->closeCursor();


Merci de votre aide

1 réponse

jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
Modifié par jeremy.s le 10/06/2013 à 17:29
Salut !

l'erreur veut dire que $reponse n'est pas le bon type d'objet, et donc tu ne peux pas faire de fetch dessus.
Tu utilise quoi comme objet pour la bdd ? PDO ?
$bdd->query te renvois un objet PDOstatement, sur le quel il y a la fonction fetch.
Tu peux alors faire un fetch si $bdd->query renvois bien un objet PDOstatment,
donc si ta requete n'est pas bonne, $bdd->query ne renvois pas d'objet PDOstatement, donc tu ne peux pas faire de fetch

$reponse = $bdd->query('SELECT id, titre, contenu,
DATE_FORMAT(date, \'%d/%m/%Y à %Hh%imin%ss\') AS dc_fr
FROM articles
ORDER BY date_creation DESC');


Il doit y avoir un problème dans ta requete,
pour en etre sur, tu peux faire cela (si tu utilise PDO) :

$reponse = $bdd->query('SELECT id, titre, contenu,
DATE_FORMAT(date, \'%d/%m/%Y à %Hh%imin%ss\') AS dc_fr
FROM articles
ORDER BY date_creation DESC') or die(print_r($bdd->erroInfo()));


Jérémy
-1
Il y a des jours ou je me mettrais des baffes.
En faite j'avais mal orthographie en champ de ma bdd, c'était titres avec un S à la fin et non titre.
En tout cas, merci pour ta réponse, et désolé pour ma question bete.
0
loupix57 Messages postés 316 Date d'inscription mercredi 20 mars 2013 Statut Membre Dernière intervention 1 juin 2015 14
10 juin 2013 à 19:30
ça arrive à tout le monde ;-)
0
abloinginfo Messages postés 1 Date d'inscription mercredi 31 décembre 2014 Statut Membre Dernière intervention 31 décembre 2014
31 déc. 2014 à 12:53
merci
0