python调用mysql中的自定义变量,为什么返回的值都是None
self.__cur=self.__db.connection()str1="set@mytemp=0;select*from(SELECT(@mytemp:=@myte...
self.__cur=self.__db.connection()
str1="set @mytemp = 0;select * from (SELECT (@mytemp:=@mytemp+1) as newid,aid FROM person_in_active order by id desc) AS A WHERE A.aid=%s"
self.__cur.execute(str1,id)
num=self.__cur.fetchall()
代码如上,目的是获取某个id在数据库的第几行。
但是返回值(num)
一直都是None。
很无解! 展开
str1="set @mytemp = 0;select * from (SELECT (@mytemp:=@mytemp+1) as newid,aid FROM person_in_active order by id desc) AS A WHERE A.aid=%s"
self.__cur.execute(str1,id)
num=self.__cur.fetchall()
代码如上,目的是获取某个id在数据库的第几行。
但是返回值(num)
一直都是None。
很无解! 展开
2个回答
展开全部
你写的代码中格式化字符串方法有问题.应该改成下面这样.
self.__cur=self.__db.connection()
str1="set @mytemp = 0;select * from (SELECT (@mytemp:=@mytemp+1) as newid,aid FROM person_in_active order by id desc) AS A WHERE A.aid=%s"
self.__cur.execute(str1 % id)
# 把","改成 % 才行, 作用是把str1中%s替换成id的值.
num=self.__cur.fetchall()
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询