创建非重复用户名数据库

问题描述 投票:0回答:1

我写了def addmember来向database.db添加成员。我不想在用户名中重复,例如:当我向数据库添加成员(1,1)时,我无法将成员(1,2)添加到我的数据库,因为已经拥有用户名为“1”的用户。但我的代码仍然允许它!有人能帮我吗 ? self.textEdit.toPlainText(),self.textEdit_2.toPlainText()的节点只是我的qtextedit对象,别介意

def addmember(self):
        self.connection = sqlite3.connect("database.db")
        cur = self.connection.cursor()
        cur.execute("CREATE TABLE IF NOT EXISTS USERS(USERNAME TEXT ,PASSWORD TEXT)")
        cur.execute("SELECT * FROM USERS WHERE USERNAME=?", (self.textEdit.toPlainText()))
        for row in cur.fetchall():
            print(row)
        if (len(cur.fetchall())==0):

            cur.execute("INSERT INTO USERS VALUES(?,?)",(self.textEdit.toPlainText(), self.textEdit_2.toPlainText()))
            self.connection.commit()
            self.textEdit.clear()
            self.textEdit_2.clear()
            cur.close()
        else:
            self.textEdit.clear()
            self.textEdit_2.clear()
            cur.close()
        self.connection.commit()
        self.connection.close()
python database sqlite repeat fetchall
1个回答
0
投票

你的召唤取消了两次。第一个获取所有行。第二个永远不会获得任何行,len将始终为0,因此您的插入将始终发生。

© www.soinside.com 2019 - 2024. All rights reserved.