Python操作数据库

这个赋值有什么问题吗,总是报错的

sid=int(input(">>>请输入需要查询的学生学号>>>"))
sql="select id,name,sex,yuwen,shuxue,yingyu from stuInfo1 where id=%s"
try:
    cursor.execute(sql,sid)
    results=cursor.fetchall()
    for info in results:
        id=info[0]
        name=info[1]
        sex=info[2]
        yuwen=info[3]
        shuxue=info[4]
        yingyu=info[5]
    print("学号:%s,姓名:%s,性别:%s,语文:%s,数学:%s,英语:%s"%(id,name,sex,yuwen,shuxue,yingyu))
except:
    traceback.print_exc()
    db.rollback()
db.close()
cursor.execute(sql % sid)  
sid是作为一个参数传入sql语句的,所以要用%,现在在python中,input默认输入的是字符串,如果sql语句语句中id为int类型,
还需要做一个转换

for循环前print(results)给个结果看下?