首页 > 解决方案 > sqlite3 查询未在函数中返回结果

问题描述

使用sqlite3从表中取回数据并根据条件返回 #results 的函数仅返回零。通过 Visual Studio 运行 #function 会返回预期的结果,但是 #当我尝试从终端运行它时,它会将表解释为 #as 是一个空列表。

import sqlite3

con = sqlite3.connect('test2.db')
cur = con.cursor()

小表来说明问题。表输出是[('Jane', 300.0), ('Joe', 100.0), ('Joe', 50.0)]

total_bal = """SELECT name, amount FROM customers2"""

user_name = input("What is your name? ")

def account_balance(name):
    cur.execute(total_bal)
    table = cur.execute(total_bal)
    total = 0
    name = user_name
    for t in table:

        if t[0] == name:
            total += t[1]            
    return total
print(account_balance(user_name))

期望返回 150if user_name input = 'Joe' or 300 if 'Jane'

标签: pythonsqlite

解决方案


实际上,您可以通过查询来执行此操作,并一起避免使用帐户余额功能。

statement = "SELECT name, account FROM customers2 WHERE name = ?;"
name = input("Enter your name: ")
cur.execute(statement, (str(name),))
results = cur.fetchone()
if results:
   print(f"Name: {results[0]}\nAccount Balance: {results[1]}"
else:
   print("Your name is not in the database")

推荐阅读