我正在使用python 3.6 . 当我尝试实现它时,在line:cursor = conn.execute(cmd)它会引发一个错误作为 Headers ,任何人都可以帮助我吗?非常感谢 .
编辑:我通过编辑str(id)到str(Id)找到了解决方案
def getProfile(id):
conn=sqlite3.connect("FaceBase.db")
cmd="SELECT * FROM People WHERE ID=" +str(id)
cursor=conn.execute(cmd)
profile=None
for row in cursor:
profile=row
conn.close()
return profile
1 回答
您的查询的错误是您不在cmd中包含引号,如果您的参数是字符串,则需要引号 . 应该是这样的:
正如@Aaron_ab在评论中提到的那样 . 您永远不应该使用这样的SQL查询,因为恶意用户可以执行SQL注入 . 例如,如果他作为ID
1' OR 1=1 /*
放置它将返回表的所有行 .总是,尝试使用不允许用户伪造自己的SQL语句的预准备语句 . 一个例子: