|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : août 2011 Messages : 7 ![]() |
Bonjour.
Voilà mon code Code :
Merci d'avance. |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() David GuillotChef de projet en SSII Inscription : mars 2004 Messages : 879 ![]() |
![]() Tu fetches 2 fois ton résultat de requête, alors que tu ne renvoies probablement qu'une seule ligne. Commence donc par enlever ce var_dump Si ça persiste, dis-nous ce que te dit le log PHP. Conseil : PDO permet de fonctionner avec des exceptions, mets ça en place, c'est très pratique pour détecter les erreurs d'exécution sans bloquer le script
__________________
Avant de poser une question ici : ![]() Après résolution de votre question : un clic sur , un et un vote pour les personnes qui vous ont aidé |
|
10
|
|
|
#3 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
"PDO ne fonctionne pas", quel titre accrocheur.
Pour ton souci: considère les résultats de requêtes (obtenus sous forme d'instance de PDOStatement) comme une pile. Chaque fois que tu fais un fetch, tu dépiles une ligne de résultats, la méthode fetch renverra false si il n'y a plus de lignes donc les syntaxes suivantes sont équivalentes: Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
|
|
#4 | ||||
|
Invité de passage
![]() Inscription : août 2011 Messages : 7 ![]() |
En effet ça marche une fois le var_dump retiré ! Merci !
Mais j'ai un autre problème. Quand j'ai crée une méthode pouvant faire ça. Code :
Code :
N'y a-t-il pas un moyen pour retourner un objet depuis ma méthode ? @Benjamin Delespierre : Désolé pour le titre. J'ai essayé avec foreach (merci je savais pas qu'on pouvait faire aussi ainsi) mais ça ne fonctionne toujours pas. |
||||
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() David GuillotChef de projet en SSII Inscription : mars 2004 Messages : 879 ![]() |
C'est là qu'interviennent les exceptions. Place ton execute dans un try{} catch{}, tu verras ce qui se passe.
Conseil : pour assurer un meilleur découpage des responsabilités de chaque morceau de code, place plutôt tes fetch dans ta méthode liste_mp(), et fais en sorte que cette méthode renvoie un tableau. De cette manière tu pourras parcourir le tableau avec un simple foreach
__________________
Avant de poser une question ici : ![]() Après résolution de votre question : un clic sur , un et un vote pour les personnes qui vous ont aidé |
|
00
|
|
|
#6 | |||||
|
Invité de passage
![]() Inscription : août 2011 Messages : 7 ![]() |
Citation:
Code :
Code :
J'en conclut que $array n'est pas un tableau. EDIT : Quand je fais var_dump sur $array j'obtiens un false ... je ne comprends plus rien. |
|||||
|
|
00
|
|
|
#7 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Cette syntaxe est incorrecte:
Code :
$q->execute(array('pseudo' => strtolower($this->pseudo))); Donc Code :
$q->execute(array(':pseudo' => strtolower($this->pseudo))); Voici comment préparer et exécuter des requêtes sereinement avec PDO: Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
|
|
#8 | ||
|
Invité de passage
![]() Inscription : août 2011 Messages : 7 ![]() |
Merci pour la technique, mais ça ne change rien au problème. Il me semble impossible de retourner un objet ou un tableau depuis ma méthode.
Voilà ma classe si ça peux aider : Code :
|
||
|
|
00
|
|
|
#9 | ||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Citation:
Citation:
Si votre fetch (plus haut) renvoie FALSE et en admettant que le reste ne "plante" pas avant : n'y aurait-il pas tout simplement aucun résultat ? Mais, bon, difficile de s'y retrouver, le code n'est jamais le même, aucun débogage (var_dump à des moments clés), parfois il n'y a aucune gestion d'erreur, etc. Ce serait à revoir (complètement). |
||
|
|
00
|
|
|
#10 | |
|
Invité de passage
![]() Inscription : août 2011 Messages : 7 ![]() |
Citation:
Le code semble bon. Quand je le met directement dans mon fichier index.php, sans passer par une classe, il fonctionne. |
|
|
|
00
|
|
|
#11 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Qu'est ce qui se passe si tu effectue cette requête directement sur MySQL ?
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : août 2011 Messages : 7 ![]() |
MySQL me retourne ce que je lui ai demandé. Je ne pense pas que le problème puisse venir du SQL.
|
|
|
00
|
|
|
#13 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Bon eh bien regarde combien de lignes tu réccupères avec $stmt->rowCount();
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : août 2011 Messages : 7 ![]() |
Je récupère 0 ligne.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com