web-dev-qa-db-fra.com

Création d'une procédure dans mySql avec des paramètres

J'essaie de faire une procédure stockée en utilisant MySQL. Cette procédure validera un nom d'utilisateur et un mot de passe. J'exécute actuellement mySQL 5.0.32, il devrait donc être possible de créer des procédures.

Voici le code que j'ai utilisé. Tout ce que je reçois est une erreur de syntaxe SQL. 

   GO
    CREATE PROCEDURE checkUser
    (IN @brugernavn varchar(64)),IN @password varchar(64))
    BEGIN
    SELECT COUNT(*)  FROM bruger WHERE bruger.brugernavn=@brugernavn AND bruger.pass=@Password;
    END;

Merci d'avance

25
Peter Rasmussen

Je l'ai compris maintenant. Voici la bonne réponse

CREATE PROCEDURE checkUser 
(
   brugernavn1 varchar(64),
   password varchar(64)
) 
BEGIN 
   SELECT COUNT(*) FROM bruger 
   WHERE bruger.brugernavn=brugernavn1 
   AND bruger.pass=password; 
END; 

@ pointe vers une variable globale dans mysql. La syntaxe ci-dessus est correcte.

50
Peter Rasmussen
(IN @brugernavn varchar(64)**)**,IN @password varchar(64))

Le problème est le )

7
Alexo

Il est très facile de créer une procédure dans Mysql. Ici, dans mon exemple, je vais créer une procédure chargée d'extraire toutes les données de la table des étudiants en fonction du nom fourni.

DELIMITER //
CREATE PROCEDURE getStudentInfo(IN s_name VARCHAR(64))
BEGIN
SELECT * FROM student_database.student s where s.sname = s_name;
END//
DELIMITER;

Dans l'exemple ci-dessus, les noms de base de données et de table sont student_database et student respectivement ..__ Remarque: Au lieu de s_name, vous pouvez également passer @s_name en tant que variable globale.

Comment appeler la procédure? Bien! c'est très facile, vous pouvez simplement appeler une procédure en tapant cette commande

$mysql> CAll getStudentInfo('pass_required_name');

 enter image description here

0
Brajesh