求教关于mySQLdb 调用 mysql存储过程(有返回参数 和 数据集)的问题
oTyg 2015-03-28 09:34:06 如题
存储过程代码:
CREATE DEFINER=`root`@`localhost` PROCEDURE `Login`(
OUT o_status varchar(10),
OUT o_msg varchar(50),
IN email varchar(50),
IN pwd varchar(100)
)
BEGIN
DECLARE u_num INT ;
DECLARE u_pwd varchar(100);
select u.ID , u.password into u_num , u_pwd from users u where u.email = email limit 1;
if u_num > 0 then
if u_pwd = pwd then
set o_status = "0";
set o_msg = "登录成功";
else
set o_status = "1";
set o_msg = "密码错误";
end if;
else
set o_status = "3";
set o_msg = "非法帐号";
end if;
select o_status,o_msg ;
select * from users;
end
Python代码:
def Login(self,email,pwd):
conn = MySQLdb.connect(host="127.0.0.1" ,user="root", passwd="123456ok.", db="cjd",charset='utf8' )
conn.autocommit(True)
cursor = conn.cursor()
#cursor = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
out1=""
out2=""
cursor.nextset()
#cursor.callproc('Login',(out1,out2,email,pwd))
cursor.callproc('Login',(out1,out2,email,pwd))
#cursor.execute("select @_Login_0, @_Login_1")
data = cursor.fetchall()
print(data)
cursor.close()
conn.close()
return "0" , "0"
#return a,b
想在py中获取到 两个传出参数 以及 select * 的结果(只是为了实现功能,此处并无实际意义)
请不吝赐教,在线等,谢谢。。。
另外想请教 torndb 可否支持该操作......