Erreur de fetch avec requête MySQL

Résolu/Fermé
alexisr Messages postés 53 Date d'inscription jeudi 23 septembre 2010 Statut Membre Dernière intervention 20 avril 2014 - 5 juin 2013 à 06:38
alexisr Messages postés 53 Date d'inscription jeudi 23 septembre 2010 Statut Membre Dernière intervention 20 avril 2014 - 5 juin 2013 à 17:46
Bonjour à vous,

Suite à plusieurs lecture je ne trouve pas la source réelle de mon problème j'ai

besoins d'aide. Je vous expose mon problème :

J'ai lue le sujet suivant qui dit bien comment faire des requête et ça à toujours bien

fonctionné pour moi aussi jusqu'à aujourd'hui.

https://forums.commentcamarche.net/forum/affich-3241830-php-afficher-les-donnees-d-une-base-mysql

base-mysql

Lorsque j'éffectue ceci :

try
{
$bdd = new PDO('mysql:host=localhost;dbname=nombd', 'user', 'pw');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}

$reponse=$bdd->exec("SELECT file_name FROM alexis WHERE file_extension=mp3");
while ($lignes = $reponse -> fetch(PDO::FETCH_OBJ))
{
echo $lignes->file_name;
}
$reponse->closeCursor();

On me retourne l'erreur suivante :
Fatal error: Call to a member function fetch() on a non-object line 11

Si vous pouvez m'aider ce serait apprécié,

Merci ! :)
A voir également:

2 réponses

Utilisateur anonyme
5 juin 2013 à 10:44
Bonjour

Dans ta requête, mp3 est une chaîne de caractères et non pas un nom de champ. Il faut donc le mettre entre quotes :
$reponse=$bdd->exec("SELECT file_name FROM alexis WHERE file_extension='mp3'"); 
2
alexisr Messages postés 53 Date d'inscription jeudi 23 septembre 2010 Statut Membre Dernière intervention 20 avril 2014 1
5 juin 2013 à 17:36
Merci beaucoup, je vais essayé ça! =)
0
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 5/06/2013 à 17:40
Pour voir les erreurs de PDO, tu peux rajouté :
$reponse=$bdd->exec("SELECT file_name FROM alexis WHERE file_extension=mp3") or die(print_r($bdd->errorInfo()));

Le or die tu peux aussi le mettre avec un execute() ou un query() ;-)

Et normalement avec ca il te dira la même chose que le père :)
0
alexisr Messages postés 53 Date d'inscription jeudi 23 septembre 2010 Statut Membre Dernière intervention 20 avril 2014 1
5 juin 2013 à 17:42
Merci bien du conseil jeremy :)
0
alexisr Messages postés 53 Date d'inscription jeudi 23 septembre 2010 Statut Membre Dernière intervention 20 avril 2014 1
5 juin 2013 à 17:46
j'aimerais ajouter que j'ai du changer le exec pour un query afin que cela fonctionne bien. au cas ou cette erreur arriverait à quelqu'un d'autre.
0