0

我有一个 sqlite3 数据库 users.db,其中表有命名用户,表有 2 行:登录名和密码。

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',), ....]

4

1 回答 1

0

c.execute()不返回结果。您需要显式获取行。你这里只有一行(计数)所以使用.fetchone()

c.execute("SELECT count(*) FROM users WHERE users.login=?", (name,))
playercount = c.fetchone()
if playercount[0]:
    print 'user exists'
于 2013-10-16T08:50:09.450 回答