|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre habitué
![]() ![]() hugues dupontPompier Inscription : janvier 2010 Messages : 316 ![]() |
bonjour,
je viens d'acheter la revue "web design" sur savoir tout faire avec php et Mysql. C'est une petite bible. Je viens d'essayer un tuto où quelques erreurs de syntaxes y étaient. Après correction de quelques unes, il me reste celle là. Je ne sais pas d'où ça vient. message erreur Code :
Fatal error: Call to a member function fetch() on a non-object in F:\EasyPHP-5.3.9\www\tuto php\login.php on line 29 Code :
|
||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Étudiant Inscription : avril 2012 Messages : 602 ![]() |
Bonjour,
c'est normal la fonction execute() de PDO renvoi un booléen et non un PDO::Statement. Tu doit passer par ta variable $check_credentials_query pour pouvoir utiliser ta méthode fetch(). Ce qui donnera : Code :
|
||
|
|
10
|
|
|
#3 |
|
Membre habitué
![]() ![]() hugues dupontPompier Inscription : janvier 2010 Messages : 316 ![]() |
Merci ça fonctionne.
Mais au fait à qui sert cette variable? |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Étudiant Inscription : avril 2012 Messages : 602 ![]() |
Si j'ai bien compris ta question,
$check_credentials_query stocke le "résultat" de ta requête, mais tu ne peut pas l'exploiter comme ça, il faut que tu passe par la méthode fetch() (ou fetchAll() mais elle retourne le résultat différemment) du résultat, cette méthode va donner chaque ligne du résultat à un tableau, objet (selon le paramètre que tu donne à la méthode fetch()), et c'est via ce tableau ou cette objet que tu peut utiliser les informations reçu de la base de données. |
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() ![]() hugues dupontPompier Inscription : janvier 2010 Messages : 316 ![]() |
En fait ce que je ne comprend pas c'est à quoi ça sert d'avoir cette valeur dans la session .
À quoi peut elle servir plus tard ? |
|
|
00
|
|
|
#6 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 16 466 ![]() |
$check_credentials_query n'est pas stocké dans la session.
Par contre effectivement ta ligne Code :
$userdata=$check_credentials->fetch(); Si tu souhaites avoir les informations sur l'utilisateur connecté dans la session il faudrait Code :
$_SESSION["userdata"]=$check_credentials->fetch(); |
|
|
10
|
|
|
#7 | ||
|
Membre habitué
![]() ![]() hugues dupontPompier Inscription : janvier 2010 Messages : 316 ![]() |
ok si j'ai bien compris ton explication, cette fonction me permet via un tableau, d'avoir tous les renseignements sur l'utilisateur (tous les champs de la table) et de les utiliser dans d'autre formulaires?
Effectivement, je viens de voir que j'avais supprimé une ligne vue que la première fonction ne marchait pas. Code :
Je comprend vite mais il faut m'expliquer longtemps |
||
|
|
00
|
|
|
#8 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 16 466 ![]() |
$_SESSION se comporte comme une variable tableau normale.
dans ton code $userdata est un tableau contenant par exemple $userdata['username'] donc tu obtiendras $_SESSION['username'] etc. |
|
|
10
|
|
|
#9 |
|
Membre habitué
![]() ![]() hugues dupontPompier Inscription : janvier 2010 Messages : 316 ![]() |
G compris.
MERCIIIIIIIIIIII Tes explications sont super simples à comprendre et ça c'est cool. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com