Está en la página 1de 1

Procedimiento Almacenado para un Login MySQL Que tal es dia de hoy realizare un procedimiento almacenado que segn el nombre

de usuario y la contrasea regresara el id del usuario si el id es diferente de cero el usuario si existe de lo contrario no existe. Esto servir mas que todo para trabajar de una forma mas segura y no validar o hacer verificaciones dentro del cdigo php, .NET, jsp por mencionar algunos y bueno teniendo el id del usuario se pueden hacer maravillas despus. Igual esto tambien servira de ejemplo de como utilizar los procedimientos almacenados. El procedimiento almacenado es el siguiente:
CREATE PROCEDURE `login_usuario`(IN nombre CHAR(30), IN passw CHAR(30), OUT existe INT, OUT user_name CHAR(30)) SET existe=0; SELECT usuario_name,user_id into user_name,existe FROM nombre_tabla WHERE STRCMP(usuario_name,nombre)=0 AND STRCMP(passw,password)=0; END

BEGIN

bueno los parmetros que espero son nombre, passw(el password) como entradas es decir en MySQL cuando colocamos IN significan que ese dato es solo entrada en cambio OUT es lo que vamos a sacar y se quedara guardado luego en la base de datos que despus se puede ir a verificar. Tambin se podra colocar INOUT que servir para los dos como entrada y salida. El cuerpo del procedimento almacenado debe estar entreo BEGIN y END. Para asignar un valor a una variable se le coloca el SET seguido del nombre de la variable = y el valor. Este SET existe=0 se coloca por que si no encuentra nada en la consulta retornara un 0 si no se colocara esto si no encontrara la variable el resultado seria NULL o el valor vaci. Luego con una simple consulta verificamos si existe el usuario y contrasea que se esta verificando en MySQL la comparacin entre strings se realiza con STRCMP si es 0 significa que son iguales las dos cadenas. Si la primer cadena es mayor devuelve 1 de lo contrario devolver -1. Bueno ya sabiendo todo esto se procedera a ver como llamar a este procedimiento almacenado y como funcionara esto:
call login_usuario(yonatan,passwordprueba,@a,@b);

Bastara con realizar esta consulta para llamara a este procedimiento almacenado el @a y @b son los parametros que serviran como salida mysql. Luego despues de hacer esto se le dara: SELECT @a y retornara el id del usuario luego de esto si el resultado es diferente de 0 el usuario existe y se le dar SELECT @b para obtener el nombre del usuario y mostrarlo en nuestra pagina.

También podría gustarte