首页 > 解决方案 > 在 sqlite3 中使用用户输入(python 3.7)

问题描述

嘿伙计们,我现在正在处理一项任务,我正在尝试添加一个登录功能,该功能询问用户他们的用户名,然后查看他们的输入是否与数据库中的任何内容匹配。抱歉编码不好,这是我的第二年,我在 10 年级。


import sqlite3

db = sqlite3.connect('library.db')

cursor = db.cursor()

result = cursor.fetchall

def login():
    user = input("VAT IS YAH USERNAM: ")
    pastuser = user
    user = ("%" + user + "%")
    cursor.execute("SELECT username FROM Users WHERE username LIKE " + user)
    result = cursor.fetchall()
    if result == pastuser:
        print("VAT IS YAH PASWRD")

login()

标签: python-3.xsqlite

解决方案


尽管没有提供问题,但您的SELECT语句出现语法错误,因为它在符号"之间丢失所以更改%LIKE

user = ("%" + user + "%")

user = ("\"%" + user + "%\"")

此外,您正在比较resultpastuser但结果是一个元组列表,其中包含从 中返回的所有元组SELECT,如果您只想检查第一个用户遇到的变化

if result == pastuser:

if result[0][0] == pastuser:

或者您可以更改返回单个元组的fetchall方法。fetchone

如果要遍历所有用户:

for u in result:
    ...

推荐阅读