2013-10-02 90 views
-1

這是我的代碼:錯誤SQLite中3的Python

import sqlite3 
CreateDB = sqlite3.connect('Login.db') 
querycurs = CreateDB.cursor() 

def createTable(): 
    querycurs.execute('''CREATE TABLE Database (id INTEGER PRIMARY KEY, user TEXT, passw TEXT)''') 
    print "Done" 

def NewElement(new_user,new_pass): 
    querycurs.execute('''INSERT into Database (user,passw) values (?,?)''',(new_user,new_pass)) 

def SelectElement(new_user): 
    Pass = querycurs.execute('''SELECT passw FROM Database WHERE user = (?) ''',[new_user]) 
    print Pass 

createTable()  
NewElement("Abhishek","Mitra") 

SelectElement("Abhishek") 

通行證值打印爲;

<sqlite3.Cursor object at 0x0000000002A9FE30> 

我遵循我的教程中給出的確切腳本。

+4

這是不是一個錯誤。這就是已經返回 – TerryA

+0

它不應該返回Mitra – user2834165

回答

1

這樣做:

print Pass.fetchone()[0] 

另外,我建議遵循the naming conventions of PEP 8。將結果命名爲result,而不是Pass。不要使用大寫字母來啓動函數名稱,請使用newElement而不是NewElement

編輯:請參閱PEP 249 for the methods of a cursor

+0

嘿,那麼,工作謝謝! – user2834165

+1

也許除了'pass'外,它是一個關鍵字。沒有? :-) – paxdiablo

+1

@paxdiablo固定​​,謝謝;) – 2013-10-02 09:35:12

0

遊標執行的結果是一個可迭代的值。你要麼必須遍歷它,或讀取第一行:

for row in Pass: 
    print row[0] 

或:

print Pass.fetchone()[0]