2013-10-16 50 views
0

我有一個sqlite3數據庫users.db其中表具有命名用戶和表有2行:登錄名和密碼。來自DB sqlite3在進程註冊中的唯一值

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' 

問題:這並不在dabase找到用戶名稱,但用戶名存在於數據庫中:[(u'serg',), (u'sava',), ....]

回答

0

c.execute()不回結果。您需要顯式讀取行。你只在這裏有一行(數),所以使用.fetchone()

c.execute("SELECT count(*) FROM users WHERE users.login=?", (name,)) 
playercount = c.fetchone() 
if playercount[0]: 
    print 'user exists' 
+0

謝謝它的工作! –

+0

ohh ...這個http://pastebin.com/eX5iky2f部分在playercount = c.fetchone()之後,如果名字不存在於DB playercount = 0中。爲什麼不工作,而playercount [0]!= 0:? –

+0

P.S.我想得到你的答覆,但我不做這個動作,因爲我的聲望<15 –

相關問題