sqlite3.OperationalError:“ <”附近:语法错误

时间:2020-03-24 09:37:16

标签: python sqlite

任何人都可以帮助我解决这个问题,我遇到了错误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

1 个答案:

答案 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))