sqlite3根据python变量选择值

时间:2018-01-04 10:22:16

标签: database python-3.x tkinter sqlite

我试图根据用户通过Tkinter输入的变量从我的python SQL表中选择一个值。我的数据库有一个名为employee_username的列,其员工的用户名和密码分为1行。用户在tkinter窗口中输入用户名

我的代码如下所示:

import sqlite3
import password_database
import tkinter

conn = sqlite3.connect('passwordDb.db')
c = conn.cursor()
username=entry_user.get()
password=entry_user.get()
database_username=c.execute(SELECT * FROM passwordDb WHERE 
employee_username=username)

if database_username!=' ':
   print('you entered a username which is not in the database')
else:
   running=True

当我运行此代码时,我无法获得任何结果。如何设置检查用户输入的值是否在我的数据库中以及如何检索附加到用户名的员工密码。 提前致谢

2 个答案:

答案 0 :(得分:0)

您的代码不完整,但我想我理解您。

在查询数据库之前,您需要从用户名或输入中删除空格

#Content

答案 1 :(得分:0)

我看到很少的错误

首先:查询应该是字符串,它应该是?username应该是元组(username, )作为参数

c.execute("SELECT * FROM passwordDb WHERE employee_username=?", (username, ))

第二:你必须使用fetchall()或fetchone()`来获得包含结果或第一个结果的列表。

rows = cur.fetchall()

row = cur.fetchone()

第三:execute()不必返回值,因此比较器与字符串" "没有任何意义。 fetchall()/ fetchone()`返回带有结果的行,以便检查它返回的行数。

rows = cur.fetchall()

if len(rows) != 1:
   print("your username is bad or duplicate") 

rows = cur.fetchall()

if cur.rowcount != 1:
   print("your username is bad or duplicate")