Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite3 Python-检查条目是否存在_Sql_Database_Python 3.x_Sqlite - Fatal编程技术网

SQLite3 Python-检查条目是否存在

SQLite3 Python-检查条目是否存在,sql,database,python-3.x,sqlite,Sql,Database,Python 3.x,Sqlite,我试图检查数据库中是否存在重复的用户名,但出现错误: sqlite3.ProgrammingError:提供的绑定数量不正确。当前语句使用1,提供了3个 这里提到的绑定是什么?我应该如何解决这个问题 conn = sqlite3.connect('data.db') c = conn.cursor() c.execute('''CREATE TABLE IF NOT EXISTS users (username, f_name, l_name, age, email, uid)''') for

我试图检查数据库中是否存在重复的用户名,但出现错误:

sqlite3.ProgrammingError:提供的绑定数量不正确。当前语句使用1,提供了3个

这里提到的绑定是什么?我应该如何解决这个问题

conn = sqlite3.connect('data.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS users (username, f_name, l_name, age, email, uid)''')
for u in range(0,1):
   a1 = input("Enter desired username:\t")
   a2 = input("Enter first name:\t")
   a3 = input("Enter last name:\t")
   a4 = input("Enter age:\t")
   a5 = input("Enter email:\t")
   a6 = str(uuid4())
   add = [a1,a2,a3,a4,a5,a6]
   c.execute('''SELECT username FROM users WHERE username=?''', a1)
   exists = c.fetchall()
   if not exists:
       c.execute('INSERT INTO users VALUES(?,?,?,?,?,?)',add)
       conn.commit()
   else:
       print("Error: Username already in use.\n")

这一行有一个微妙的问题:

c.execute('''SELECT username FROM users WHERE username=?''', a1)
.execute()
的第二个参数必须是容器
因此,您可以这样做,它将起作用:

c.execute('''SELECT username FROM users WHERE username=?''', (a1,))
                                                           # ^  ^^ this is now a tuple!

成功了。非常感谢。