Python 进程注册中DB sqlite3的唯一值

Python 进程注册中DB sqlite3的唯一值,python,sqlite,unique,registration,Python,Sqlite,Unique,Registration,我有一个sqlite3 database users.db,其中表有命名用户,表有两行:login和password users.db users: login | password name 1| name 2| etc...... | 我需要通过键盘输入数据,如果数据库中存在此数据,请再次输入数据 python 2.6提供的示例: #!/usr/bin/python # -*- coding: utf-8 -*- import sqlite3 as db #регистрация pr

我有一个sqlite3 database users.db,其中表有命名用户,表有两行:login和password

users.db
users:
login | password
name 1|
name 2|
etc...... |
我需要通过键盘输入数据,如果数据库中存在此数据,请再次输入数据

python 2.6提供的示例:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import sqlite3 as db

#регистрация
print "reg for reg or enter your name"
_id = raw_input()
if _id == 'reg':
    name = raw_input("Choose your name: ")
    conn = db.connect('users.db')
    c = conn.cursor()
    player = c.execute("SELECT count(*) FROM users WHERE users.login=?", (name,))
    #print player
    if player == True:
        print 'user exists'
问题:这在数据库中找不到用户名,但用户名存在于数据库中:
[(u'serg',),(u'sava',),…]
c.execute()
不返回结果。您需要显式地获取行。这里只有一行(计数),因此请使用
.fetchone()


哦。。。如果DB playercount=0中不存在名称,则在playercount=c.fetchone()之后显示此部分。为什么不在播放计数[0]时工作=0:?P.S.我想对你的答案投赞成票,但我不会这样做,因为我的声誉<15
c.execute("SELECT count(*) FROM users WHERE users.login=?", (name,))
playercount = c.fetchone()
if playercount[0]:
    print 'user exists'