Voici mon petit soucis, je souhaite créer une "procédure stockée" dans le cadre d'une authentification, malheureusement je n'arrive pas à faire fonctionner ma requête ci dessous.
DELIMITER //
CREATE PROCEDURE authentification
(
IN user VARCHAR(20),
IN pass VARCHAR(20),
OUT exit INT(10)
)
BEGIN
SELECT COUNT(*)
INTO exit
FROM `utilisateurs` WHERE username=user and password=pass;
END;
//
DELIMITER ;
D'habitude sous SQL server, je galère un peu sous MYSQL car la syntaxe n'est pas tout à fait la même ..
Mes paramètres d'entrées doivent être deux varchar de 20 qui contiennent le nom de l'utilisateur et sont pseudo.
Ma procédure doit vérifier que le login et le mot de passe correspondent à ceux enregistrés dans ma table utilisateurs.
Pour cela, j'affecte la valeur du count à exit qui est un paramètre OUT à ma procédure.
Si exit est à 0 => login et mdp qui ne sont pas dans la table utilisateurs
si exit est à 1 => c'est ok
DELIMITER //
CREATE PROCEDURE authentification
(
IN ut VARCHAR(20),
IN mdp VARCHAR(20),
OUT retour INT(1)
)
BEGIN
SELECT COUNT(*)
INTO retour
FROM uts WHERE e_mail=ut and mdp=mdp;
END;
//
DELIMITER ;
ça marche nickel quand on a pas de noms de colonnes ou de variables IN ENGLISH qui se téléscopent avec des mots réservés (exit, user, ...).
Ton post aurait pu t'alerter (user en vert).
Dans MySQLQueryBrowser c'était encore plus évident : plein de mots en bleu.
Vous voulez SPEAK ENGLISH, alors préfixez vos variables
Procédure stockée sous MYSQL
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.