Petite erreur dans ma requete [Résolu]

Signaler
Messages postés
2905
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
12 juin 2021
-
Messages postés
2905
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
12 juin 2021
-
bonjour a tous
j ai une petite erreur dans ma requête
je ne comprends pas bien ce qui ce passe cette fois

pourtant j ai bien suivi l exemple
 $sql = "SELECT * FROM utilisateur WHERE pseudo = ? ";
//je n ai pas de variable donc c est NULL

$datas = NULL;
// ------------------------------ //
// CETTE PARTIE DU CODE NE CHANGE PAS //
try{
  $requete = $pdo -> prepare($sql) ;
  $requete->execute($datas) ;
}catch(Exception $e){
  // en cas d'erreur :
   echo " Erreur ! ".$e->getMessage();
   echo " Les datas : " ;
  print_r($datas);
}



j ai toute une série de message d erreur

7 réponses

Messages postés
3867
Date d'inscription
lundi 16 juillet 2007
Statut
Contributeur sécurité
Dernière intervention
13 juin 2021
1 391
Bonjour,

Si tu as une erreur, il serait peut-être utile de nous la donner aussi.
Et ta variable
$pdo
elle contient quoi ? Donne l'ensemble des fichiers qui peuvent permettre de comprendre ton problème.
Messages postés
2905
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
12 juin 2021
138
bonjour
merci pour la reponse
la variable $pdo est ma connexion

voici l erreur qui me reste

Invalid parameter number: no parameters were bound Les datas :
Messages postés
32967
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 juin 2021
3 559
Tu n'as rien mis dans datas
Messages postés
3867
Date d'inscription
lundi 16 juillet 2007
Statut
Contributeur sécurité
Dernière intervention
13 juin 2021
1 391
Me dire que $pdo contient un truc ne m'aide pas à voir s'il y a une erreur dans ce truc.
Mais ce n'est pas lié au message d'erreur.

Dans ta requête SQL tu as mis un token de substitution (point d'interrogation). Mais il faut ensuite dire à PDO par quoi remplacer ce token.
$requete->bindValue(1, "valeur de remplacement"); 

1 correspond à la position des token dans ta requête. Le 1er point d'interrogation sera le 1.
https://www.php.net/manual/fr/pdostatement.bindvalue.php#example-1022
Messages postés
2905
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
12 juin 2021
138
merci pour la reponse jordane
cela je l avais bien remarque

mais que mettre dans mes datas puisque je n ai pas de variable
lorsque j ai un insert c est facile ...
Messages postés
3867
Date d'inscription
lundi 16 juillet 2007
Statut
Contributeur sécurité
Dernière intervention
13 juin 2021
1 391
Si tu fais un SELECT avec un WHERE, c'est que tu recherches une correspondance précise. Donc dans le cas présent, tu cherches une ligne dans ta BDD qui contient le pseudo et tu récupères toutes les infos associées.

Si tu veux tous les utilisateurs, il ne faut pas mettre de "WHERE". Tu vas ainsi récupérer la liste complète.
Messages postés
32967
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 juin 2021
3 559
Tu as bien une variable puisque dans ton verre tu mets une condition...
WHERE pseudo = ?
Messages postés
3867
Date d'inscription
lundi 16 juillet 2007
Statut
Contributeur sécurité
Dernière intervention
13 juin 2021
1 391 >
Messages postés
32967
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 juin 2021

Hello Jordane, ta reconnaissance vocale a des problèmes avec la boisson. Mais ça illumine ma journée :D.
Messages postés
32967
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 juin 2021
3 559 >
Messages postés
3867
Date d'inscription
lundi 16 juillet 2007
Statut
Contributeur sécurité
Dernière intervention
13 juin 2021

Oula..oui.
Google picole plus que moi visiblement
Messages postés
2905
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
12 juin 2021
138
merci pour la reponse
et surtout l aide et le morceau de code

je suis occuppe a relire mon code et je ne comprends plus ...
pourquoi j avais besoin de trouver un pseudo


je vais laisser en suspend
le temps que je regarde cela de plus près
Messages postés
2905
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
12 juin 2021
138
merci jordane
même si je n ai plus besoin de ce morceau de code je souhaiterais savoir ce que j aurais du faire

donc je reprends ton exemple
car c est bien une variable pseudo que je cherchais

//préparation de la requête et des variables
 $sql = "SELECT * FROM utilisateur WHERE pseudo = ? ";

$datas = array($pseudo);

//Execution de la requete
try{
  $requete = $bdd -> prepare($sql) ;
  $requete->execute($datas) ;
}catch(Exception $e){
  // en cas d'erreur :
   echo " Erreur ! ".$e->getMessage();
   echo " Les datas : " ;
  print_r($datas);
}
Messages postés
32967
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 juin 2021
3 559
Oui
Messages postés
2905
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
12 juin 2021
138
c était la bonne réponse jordane?
Messages postés
32967
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 juin 2021
3 559
oui
Messages postés
2905
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
12 juin 2021
138
ah super merci jordane
au moins a présent j ai presque toute les possibilités en exemple