sqlite3.OperationalError: вблизи "<": синтаксическая ошибка - PullRequest
0 голосов
/ 24 марта 2020

Может ли кто-нибудь помочь мне решить эту проблему у меня была ошибка sqlite3.OperationalError: вблизи "<": синтаксическая ошибка, я думаю, что из sql, но все еще застрял там </p>

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 голосов
/ 24 марта 2020

Я не могу воспроизвести вашу ошибку в моем тестировании.

Пока я тестировал ваш код, я заметил проблему с

connect.execute("SELECT * FROM user WHERE id="+str(id))

Я думаю, это должно быть

cur.execute("SELECT * FROM user WHERE id="+str(id))

Это работает во время моего тестирования. Пожалуйста, дайте мне знать, если это работает или нет. Изменяя это, функция возвращает результат, и я смог получить результат.

Если вы не возражаете, у меня есть еще один совет для вас. То, как вы написали свой запрос, очень подвержено атакам SQL Injection, как показано здесь . Я бы порекомендовал вам структурировать ваш запрос следующим образом.

cur.execute("SELECT * FROM user WHERE id=?",str(id))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...