SQLite 查询返回 false
SQLite query returning false
所以对于我的项目,我试图让用户在文本框中键入一些内容,如果它与数据库中存储的内容相同,那么它会告诉他们这是真的。然而,目前即使输入了正确的内容,它也会 return 错误。这是获得答案的部分的当前代码,returns 并比较它:
def submit():
answerA=entry_A.get()
answerB=entry_B.get()
answerC=entry_C.get()
answerD=entry_D.get()
answerE=entry_E.get()
answerF=entry_F.get()
print(answerA,", ",answerB,", ",answerC,", ",answerD,", ",answerE,", ",answerF)
labelA=cursor.execute\
("select labelA from diagramLabels where diaName == 'plantCell'").fetchall()
con.commit()
if labelA == answerA:
print("Answer A is correct")
else:
print("Answer A is false")
And this is the result it gives in Idle, along with what's in the database
请告诉我哪里做错了。
您应该使用 fetchone()
而不是 fetchall()
。
fetchall()
return 多行(像这样: (('nucleus',),)
)而 fetchone()
只会 return 一行。
然后你会得到这样的东西:('nucleus',)
那你可以和labelA[0] == answerA
比较一下。
所以对于我的项目,我试图让用户在文本框中键入一些内容,如果它与数据库中存储的内容相同,那么它会告诉他们这是真的。然而,目前即使输入了正确的内容,它也会 return 错误。这是获得答案的部分的当前代码,returns 并比较它:
def submit():
answerA=entry_A.get()
answerB=entry_B.get()
answerC=entry_C.get()
answerD=entry_D.get()
answerE=entry_E.get()
answerF=entry_F.get()
print(answerA,", ",answerB,", ",answerC,", ",answerD,", ",answerE,", ",answerF)
labelA=cursor.execute\
("select labelA from diagramLabels where diaName == 'plantCell'").fetchall()
con.commit()
if labelA == answerA:
print("Answer A is correct")
else:
print("Answer A is false")
And this is the result it gives in Idle, along with what's in the database
请告诉我哪里做错了。
您应该使用 fetchone()
而不是 fetchall()
。
fetchall()
return 多行(像这样: (('nucleus',),)
)而 fetchone()
只会 return 一行。
然后你会得到这样的东西:('nucleus',)
那你可以和labelA[0] == answerA
比较一下。