【问题标题】:Retrieve data from sqlite3 database with Python使用 Python 从 sqlite3 数据库中检索数据
【发布时间】:2020-09-15 00:52:17
【问题描述】:

所以我试图从我的 sqlite3 数据库中检索所有用户 ID。我有一个带有签入Button的tkinter gui,当用户单击按钮时,系统会提示他们扫描其标签(rfid)。一旦标签被扫描到数据库中的所有用户 Uid 并检查两者是否匹配,我正在尝试比较标签 ID。如果它们确实匹配,我将尝试打印 User Verified 如果标签与表中的 UID 之一不匹配,我将尝试打印 No user exist,Denied

from tkinter import *
import sqlite3 as sql
import RPi.GPIO as GPIO
from mfrc522 import SimpleMFRC522

reader = SimpleMFRC522()

global r
global uid_tag
def chk():
    Database = sql.connect('MedaDataBase.db')
    # cursor
    c= Database.cursor()

    #Query uid database
    c.execute("SELECT*, userID FROM Users ")

    #Fetch all uids from Database
    r= c.fetchall()

    if r:
        #Getting user uid from tag 
        id,uid_tag = reader.read()
        print(uid_tag)
        checker()

def checker():
    global uid_tag
    global r
    for x in r:
        #If userId from tag is in the database 
        if uid_tag == x:

            print("User Verified")
        else:
            print("Denied")    
            Database.commit()
            Database.close()

【问题讨论】:

    标签: python sqlite rfid


    【解决方案1】:

    在 chk() 中,r 未定义为全局变量,因此您正在读取一个局部变量,而全局变量仍未初始化。

    【讨论】:

    • 是的,谢谢!但是我现在有一个新问题,没有从数据库中检索数据,因为正在抛出 checker() 函数中的else 语句。
    • @tibaH_lluN 你知道x 将是一个结果元组,对吧?所以if uid_tag == x: 会是假的,因为uid_tag 不等于(...,....,...),Myabe 试试x[0]x[1] 什么的?
    猜你喜欢
    • 2023-03-08
    • 2020-06-04
    • 2018-04-22
    • 2021-10-08
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多