Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python从sqlite3数据库检索数据_Python_Sqlite_Rfid - Fatal编程技术网

使用Python从sqlite3数据库检索数据

使用Python从sqlite3数据库检索数据,python,sqlite,rfid,Python,Sqlite,Rfid,因此,我试图从sqlite3数据库中检索所有用户ID。我有一个tkinter gui,其中有一个签入按钮,当用户单击按钮时,系统会提示他们扫描标签(rfid)。我试图在扫描标签后将标签id与数据库中的所有用户UID进行比较,并检查两者是否匹配。如果它们确实匹配,我将尝试打印用户验证如果标记与表中的一个UID不匹配,我将尝试打印不存在用户,拒绝 在chk()中,r未定义为全局变量,因此您正在读取局部变量,而全局变量仍未初始化。是的,就是这样,谢谢!但是我现在有一个新问题,因为checker()函数

因此,我试图从sqlite3数据库中检索所有用户ID。我有一个tkinter gui,其中有一个签入
按钮
,当用户单击按钮时,系统会提示他们扫描标签(rfid)。我试图在扫描标签后将标签id与数据库中的所有用户UID进行比较,并检查两者是否匹配。如果它们确实匹配,我将尝试打印用户验证如果标记与表中的一个UID不匹配,我将尝试打印不存在用户,拒绝


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

是的,就是这样,谢谢!但是我现在有一个新问题,因为checker()函数中的
else
语句被抛出,所以没有从数据库中检索数据。@tibaH\u lluN您知道
x
将是一个结果元组,对吗?所以
如果uid\u tag==x:
将为false,因为
uid\u tag
不等于(…,…,…),Myabe是否尝试
x[0]
x[1]
或其他方法?
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()