从SQLite3数据库读取数据并使用它们

时间:2018-08-10 10:54:16

标签: database python-2.7 sqlite

首先,我真的不知道以前是否已经回答过这个问题。

我四处张望,但仍然找不到一个例子。

我是SQLite3的新手,显然我会遇到这类问题。

基本上,我正在做的是创建一个另存为“ Data.dll”的SQLite3数据库。

然后我创建了一个表并在其中插入了一些数据。

现在,基本上我想做的就是问用户一个问题,用户必须输入数字和“键”。

输入后,我要检查它是否有效。

例如,

数据#1:

NUMBERID:30138

KEY:KeyUser1

数据#2:

NUMBERID:1144

KEY:key2

如果同时输入了两者(如30138和KeyUser1。与30138和key2不同),则它们可以继续输入,否则,将表明NUMBER ID和“ KEY”不匹配。

那我该怎么办?

我是SQLite3的新手,所以我仍然是新手...

感谢您的帮助。

我的代码:

import sqlite3
dbase = sqlite3.connect("Data.dll")
print "DataBase Opened : Success."
dbase.execute(""" CREATE TABLE IF NOT EXISTS Keys(
  NUMBERID INT PRIMARY KEY NOT NULL,
  VAILD TEXT NOT NULL)""")

print "DataBase Table : Success"

def insert_record(NUMBERID,VAILD):
    dbase.execute(""" INSERT INTO Keys (NUMBERID,VAILD)
 VALUES(?,?)""", (NUMBERID,VAILD))
    dbase.commit()

#insert_record(1144, 'key2') # If needed to insert soemthing...

print "DataBase Insert : Success."

def read_Data():
    data = dbase.execute(""" SELECT NUMBERID,VAILD FROM Keys """)
    for record in data:
        NUMBER_ID = str(record[0])
        VAILD_KEY = str (record [1])
        print NUMBER_ID # Check
        print VAILD_KEY # Check


read_Data()

NUMBER_ENTER = input ("Enter NUMBER ID : ")
VAILD_ENTER = raw_input ("Enter KEY : ")
if NUMBER_ENTER in  NUMBER_ID:
    print "1" # If its at least correct print this
    ... 
else:
    print "2" # wrong
    ...
if VAILD_ENTER in VAILD_KEY:
    print "a" # if its at least correct , print this.
    ...
else:
    print "z" # wrong
    ...
dbase.close()
print "DataBase Closed : Success."

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

def check(number, key):                                                                                                                                                                                     
    data = dbase.execute("select 1 from keys where NUMBERID = ? AND VAILD = ?",     (number, key)).fetchone()                                                                                                   
    return data                                                                                                                                                                                             

NUMBER_ENTER = input("Enter NUMBER ID : ")                                                                                                                                                                  
VAILD_ENTER = raw_input("Enter KEY : ")                                                                                                                                                                     

if check(NUMBER_ENTER, VAILD_ENTER):                                                                                                                                                                        
    print 1                                                                                                                                                                                                 
else:                                                                                                                                                                                                       
    print 2

检查是否存在带有NUMBERID VAILD的行