如何使用python从sqlite数据库中搜索和检索单个数据?

时间:2013-12-30 14:05:18

标签: python mysql database sqlite

我目前正在将此计划作为计算课程的一部分。在我的程序中,我创建了一个包含用户信息的数据库'Records.db'。该表名为 Users ,布局为; Id INTEGER PRIMARY KEY, Username STRING, Password STRING, First_Name STRING, Surname STRING。 我正在尝试为用户编写登录代码。目前我的代码如下:

Login for users
import sys
import sqlite3 as lite

con = lite.connect('Records.db')

Login = False

    while Login is False:
        u_name = input("Enter your username: ")
        p_word = input("Enter your password: ")
        with con:
            cur = con.cursor()
            cur.execute("SELECT Password AND First_Name AND Surname FROM Users WHERE Username='"+u_name+"'")
        if Password == p_word:
            print("Welcome",First_Name,Surname+"!")
            Login = True
        else:
            print("The Username/Password is incorrect. Please check your input and try again!")

我一直收到一条错误消息,说明未定义变量密码。但我不知道如何使用sqlite检索它。我认为cur.execute("SELECT Password AND First_Name AND Surname FROM Users WHERE Username='"+u_name+"'")将返回密码以便打印/使用等。请尽快帮助!

1 个答案:

答案 0 :(得分:1)

这里至少有三件事是错的。我不会给你答案因为这是家庭作业,但希望这会有所帮助。

首先,您的SQL语法不正确。你没有像那样使用AND:你用逗号分隔列。

其次,execute实际上并未获取结果。你需要做cur.fetchone()

第三,您无法理解变量的工作原理。即使有结果,也不会自动将其分配给名为Password的局部变量。您需要获取光标返回的数据并将其分配给该变量。