Fatal error: Call to a member function fetch() on a non-object [Résolu/Fermé]

Signaler
-
Messages postés
1
Date d'inscription
mercredi 31 décembre 2014
Statut
Membre
Dernière intervention
31 décembre 2014
-
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

Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
74
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
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.
Messages postés
316
Date d'inscription
mercredi 20 mars 2013
Statut
Membre
Dernière intervention
1 juin 2015
16
ça arrive à tout le monde ;-)
Messages postés
1
Date d'inscription
mercredi 31 décembre 2014
Statut
Membre
Dernière intervention
31 décembre 2014

merci