Python 如何检查sqlite2 execute返回的结果?
我正在尝试检查和验证cursor.execute('SQL query')的结果。下面是我尝试的方法Python 如何检查sqlite2 execute返回的结果?,python,sqlite,validation,resultset,Python,Sqlite,Validation,Resultset,我正在尝试检查和验证cursor.execute('SQL query')的结果。下面是我尝试的方法 def select_from_db(card_number, pin): conn = sqlite3.connect('card.s3db') cur = conn.cursor() cur.execute("SELECT * FROM card WHERE number=?", (card_number,)) returned_account =
def select_from_db(card_number, pin):
conn = sqlite3.connect('card.s3db')
cur = conn.cursor()
cur.execute("SELECT * FROM card WHERE number=?", (card_number,))
returned_account = cur.fetchone()
if type(returned_account[1]) is not 'NoneType':
if returned_account[1] == card_number and returned_account[2] == str(pin):
return True
conn.close()
return False
这个想法是,当db中没有卡号时,select_from_db应该返回False,如果有一张卡号为的卡,那么我也需要检查它的pin码。当卡号和pin匹配时,函数应返回True,否则应返回Falce
这是一个课程项目。这不是为了生产。我把你的代码拿来编辑了。
代码检查是否有
None
结果,并确保连接已关闭。(使用)
import sqlite3
def select_from_db(card_number, pin):
try:
conn = sqlite3.connect('card.s3db')
cur = conn.cursor()
cur.execute("SELECT * FROM card WHERE number=?", (card_number,))
returned_account = cur.fetchone()
if returned_account is None:
return False
else:
return returned_account[1] == card_number and returned_account[2] == str(pin)
finally:
if conn:
conn.close()