Я не могу воспроизвести вашу ошибку в моем тестировании.
Пока я тестировал ваш код, я заметил проблему с
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))