任何人都可以帮助我解决这个问题,我遇到了错误sqlite3.OperationalError:在“ <”附近:语法错误,我认为是从sql出发,但仍然停留在此
def getProfile(id):
connect = sqlite3.connect('C:///Users///Marvin///Desktop///Opencv-face-detection-python-master///SQL///sql.db')
cur = connect.cursor()
connect.execute("SELECT * FROM user WHERE id="+str(id))
profile=None
for row in cur:
profile=row
cur.close()
return profile
答案 0 :(得分:0)
我无法在测试中复制您的错误。
在测试您的代码时,我发现
有问题connect.execute("SELECT * FROM user WHERE id="+str(id))
我认为应该
cur.execute("SELECT * FROM user WHERE id="+str(id))
在我的测试期间有效。请让我知道是否可行。通过更改此函数,该函数将返回结果,而我能够得到该结果。
如果您不介意,我会为您提供另外一条建议。如here所示,您编写查询的方式非常容易受到SQL Injection攻击。我建议您以以下方式构造查询。
cur.execute("SELECT * FROM user WHERE id=?",str(id))