2013-10-02 93 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]