我有一个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',), ....]
答案 0 :(得分:0)
c.execute()
不会返回结果。您需要显式获取行。这里只有一行(一个计数)所以请使用.fetchone()
:
c.execute("SELECT count(*) FROM users WHERE users.login=?", (name,))
playercount = c.fetchone()
if playercount[0]:
print 'user exists'