我是SQL新手,但我正在努力减少代码重复。我正在开发一款游戏,其服务器将使用MySQL C ++连接器。我还将托管一个访问同一数据库的网站。他们都需要对用户进行身份验证。理想情况下,我想编写一个包含用户名和哈希值的存储过程,如果名称/密码匹配则返回一个布尔值。
我在撰写查询方面并不算太糟糕,但存储过程是新的领域。
有人可以使用像这样的虚拟表给我一个简单的MySQL存储过程示例:
Table Player
Column PlayerID (int, primary key, not null, auto increment)
Column PlayerUsername (varchar 25, not null)
Column PlayerPassword (varchar 25, not null)
如何创建一个包含名称和密码的存储过程,如果至少有1条记录,其中用户名和密码与参数1匹配,则返回true。
一旦我看到存储过程的语法,我应该能够创建自己的语法。我的需求非常基本。
答案 0 :(得分:2)
像这样的东西
DELIMITER //
DROP FUNCTION IF EXISTS MY_FUNCTION//
create function MY_FUNCTION(name varchar(255) CHARACTER SET utf8,
pwd varchar(255) CHARACTER SET utf8, )
RETURNS tinyint(1)
READS SQL DATA SQL SECURITY INVOKER
BEGIN
declare result tinyint(1);
SELECT if(count(*)>0,1,0) INTO result
FROM users
WHERE users.name=name and users.pwd=pwd;
RETURN result;
END//
DELIMITER ;