Problème avec une SP avec SELECT et WHERE multiple

Résolu
cs_SoyYo Messages postés 210 Date d'inscription jeudi 11 août 2005 Statut Membre Dernière intervention 27 novembre 2009 - 22 août 2009 à 14:07
cs_SoyYo Messages postés 210 Date d'inscription jeudi 11 août 2005 Statut Membre Dernière intervention 27 novembre 2009 - 23 août 2009 à 12:20
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!!
A voir également:

2 réponses

nivsql Messages postés 159 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 14 décembre 2010 1
23 août 2009 à 00:10
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
3
cs_SoyYo Messages postés 210 Date d'inscription jeudi 11 août 2005 Statut Membre Dernière intervention 27 novembre 2009
23 août 2009 à 12:20
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!!
0
Rejoignez-nous