Problème pour afficher une entrée MySQL

Nustek - 11 avril 2014 à 10:56
 Nustek - 19 avril 2014 à 10:45
Bonjour,

J'ai ce code :

<?php
$membre_id = (int) $_GET['user'];

if($membre_id > 0) {
    $pdo = new PDO('mysql:host=localhost;dbname=registry1', 'root', '');
    
    $sql = 'SELECT * FROM "users1" WHERE "id"=:id';
    $req = $pdo->prepare($sql);
    $req->execute(array(':id' => $membre_id));
    $req->setFetchMode(PDO::FETCH_OBJ);
    $user = $req->fetch();
	
$fname = $user['fname'];

}

else {
    echo 'Url incorrecte';
}
?>
<p>Vous êtes sur le profil de <?php echo $fname; ?></p>


Quand je l'éxecute, $fname ne s'affiche pas. Comment faire ?

Merci d'avance pour vos réponses.

3 réponses

nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 17
15 avril 2014 à 09:57
salut,

il me semble que le FETCH_OBJ te permet ensuite d'accéder comme un objet, soit :


$fname = $user->fname;

plutot que


$fname = $user['fname'];

ensuite, c'est un conseil, il est préférable de lister ce que tu select :
$sql = 'SELECT fname FROM "users1" WHERE "id"=:id';

ca évite, dans le cas où la table serai modifié (ajout d'un élément par exemple) de voir des erreurs ou incohérences partout ;).

naga
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
15 avril 2014 à 14:34
Bonjour,

C'est quoi cette manie de mettre les noms de table et de champs entre guillemets ?

Tu as testé ta requête en direct dans ta BDD ?

tu peux tester comme ça ?
$sql = 'SELECT * FROM users1 WHERE id=:id';

0
OK merci à vous, ça fonctionne.
0
Rejoignez-nous