在sqlite3中使用用户输入(python 3.7)

时间:2019-03-15 11:17:35

标签: python-3.x sqlite

伙计们,我现在正在处理一项任务,我正在尝试添加一个登录功能,该功能要求用户输入用户名,然后查看其输入是否与数据库中的任何内容匹配。不好意思的编码是我第二年,我在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()

1 个答案:

答案 0 :(得分:0)

尽管未提供问题,但您的SELECT语句出现语法错误,因为在"的{​​{1}}符号之间缺少%,因此请更改

LIKE

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

另外,您正在将user = ("\"%" + user + "%\"") result进行比较,但是如果要仅检查遇到变化的第一个用户,则结果是一个元组列表以及从pastuser返回的所有元组< / p>

SELECT

if result == pastuser:

或者您可以将if result[0][0] == pastuser: 方法更改为fetchall,这将返回一个元组。

如果要遍历所有用户:

fetchone