今天在进行sql语句参数化的时候出现了如下错误:
TypeError: not all arguments converted during string formatting
如图:
代码是这样的:
sql = 'select * from student where sname="%s" and passwd = "%s"'%(sname,passwd)
params = (sname,passwd)
rowcount = cursor.execute(sql,params)
if rowcount!=0:
print("登陆成功!!!")
else:
print("登录失败!!!")
经过在网上查找资料,发现是因为这里的sql语句出现了格式化字符的问题,出现了重复的地方(这里的sname和passwd出现了两次,需要删除),又因为要体现sql语句的参数化,所以我删除了sql的格式化方式,将sname和passwd作为sql的参数
修改之后的代码是这样的:
sql = 'select * from student where sname=%s and passwd = %s'
params = (sname, passwd)
rowcount = cursor.execute(sql, params)
if rowcount != 0:
print("登陆成功!!!")
else:
print("登录失败!!!")
删除之后就可以正常运行了