如何查看sqlite2执行返回的结果?

How to check results returned from sqlite2 execute?

我正在尝试检查和验证 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 = 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

想法是,当数据库中没有卡号时,select_from_db 应该 return False,如果有卡号 card_number,那么我需要还要检查它的引脚。当卡号和密码匹配时,函数应该 return True,否则它应该 return Falce.

这是一个课程项目。不用于生产。

我获取了你的代码并进行了编辑。
代码检查 None 结果并确保连接已关闭。 (使用 finally

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()