Problème avec une SP avec SELECT et WHERE multiple [Résolu]

Signaler
Messages postés
210
Date d'inscription
jeudi 11 août 2005
Statut
Membre
Dernière intervention
27 novembre 2009
-
Messages postés
210
Date d'inscription
jeudi 11 août 2005
Statut
Membre
Dernière intervention
27 novembre 2009
-
Salut, comme dit dans le titre, j'ai un problème avec une SP qui et un select:

CREATE PROCEDURE `AdminConnect`(nom varchar(255), pass varchar(255))
BEGIN
declare id bigint;
SET id (select AdminId from admin where Loggin nom and Pass = pass);
IF id is null then
select -1;
else
select id;
end if;
END;

En fait comme vous pouvez le voir, c'est une procédure de connexion. Donc je lui donne le loggin et le pwd. Et ça retourne -1 si ça ne correspond à rien ou sinon l'id du user.

Or le problème est que le select marche que pour le premier where. Donc si je rentre un loggin qui n'existe pas, ça me retourne -1. Par contre si le loggin est bon mais le pwd pas bon, ça me retourne quand même l'id du user. Ca veut dire que le and Pass = pass n'est pas prix en compte. Alors que si j'exécute le select en dehors d'un SP, ça marche comme il faut.

Une idée?! Parce que là je bloque!!

2 réponses

Messages postés
159
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
14 décembre 2010
2
Peut etre parceque tes noms de colonnes/variables sont identique (pas sur que mysql soit Case sensitive) en conséquence Pass = pass pourrait etre interpreté comme 1 = 1 .

Essaye de changer le nom de ta variable de pass en pwd et ton prédicat en Pass = pwd
Messages postés
210
Date d'inscription
jeudi 11 août 2005
Statut
Membre
Dernière intervention
27 novembre 2009

Parfait, merci pour la réponse, j'y aurais pas pensé du tout, alors que c'est flagrant. Merci, une épine dans le pied en moins!!