簡體   English   中英

如何檢查此表中是否存在給定用戶名的記錄?

[英]How can I check if a record exists for a given username in this table?

如何檢查記錄的用戶名是否具有變量usernameentryentryry的值的記錄?

我想創建一個if語句,以便如果已經存在一條記錄,並且該用戶名的值與usernameentryentryry變量的值相同,那么該用戶將被告知該用戶名已被使用。

我怎樣才能做到這一點?

import sqlite3

with sqlite3.connect("userdatabase.db") as db: 
    cursor = db.cursor() 

usernameentryentry = "username1"

cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
userID INTEGER PRIMARY KEY,
username VARCHAR(20) NOT NULL, 
password VARCHAR(20) NOT NULL) ;
''') 

#variable defined below for use in the if statement:
#variable = true if there isnt a record with the username "username1" and 
#false if there is a record with the username "username1"

這篇文章顯示了如何以最佳方式檢查記錄是否存在

要檢查是否已經使用usernameentryentry:

cursor.execute('''SELECT 1 FROM users WHERE username = (?)''',[usernameentryentry])

如果沒有記錄,則“ cursor.fetchone()”的值為“ None”。 您可以在條件表達式中使用它(None的值為false)。

因此,您的代碼如下所示:

def insertUser(userID, usernameentryentry, password):
    cursor.execute('''SELECT 1 FROM users WHERE username = (?)''',[usernameentryentry])
    userAlreadyExists = cursor.fetchone()
    if(userAlreadyExists):
        print("Username already exists")
    else:
        cursor.execute('''INSERT INTO users(userID, username, password) VALUES(?,?,?)''', (userID,usernameentryentry,password))
        db.commit()

您可以嘗試兩次插入用戶並檢查一下自己:

insertUser(123,'james','pwd123')
insertUser(124,'james','blink182')

要查看所有用戶:

cursor.execute('''SELECT * FROM users''')
result = cursor.fetchall()
print(result)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM