cs_SoyYo
Messages postés210Date d'inscriptionjeudi 11 août 2005StatutMembreDernière intervention27 novembre 2009
-
22 août 2009 à 14:07
cs_SoyYo
Messages postés210Date d'inscriptionjeudi 11 août 2005StatutMembreDernière intervention27 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:
Problème avec une SP avec SELECT et WHERE multiple
nivsql
Messages postés159Date d'inscriptionlundi 22 juin 2009StatutMembreDernière intervention14 décembre 20101 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