Chỉ cần chuyển đổi nhận xét trước đó của tôi thành một câu trả lời, vì nó có vẻ là giải pháp phù hợp :-)
Vấn đề là đến từ một dòng khác. Bạn có cái này:
x = c.execute("SELECT * FROM users WHERE email = (%s)",
(email))
Điều này không làm những gì bạn có thể nghĩ. Đặt email
trong ngoặc không làm gì cả, vì vậy dòng thực sự tương đương với việc chuyển từng ký tự của bất kỳ ký tự nào trong biến đó trong danh sách các ký tự. Nếu thay vào đó, bạn làm điều này:
x = c.execute("SELECT * FROM users WHERE email = (%s)",
(email,))
... thì bạn sẽ chuyển vào một bộ chứa một mục, email
và nó sẽ hoạt động tốt hơn.