[英]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.