[英]How do I update a SQLite3 database in Python with user input?
我正在尝试在 Python 中创建一个个人预算程序,但我无法根据用户的输入更新我的当前银行余额数据库。 我将用户输入(现金余额)存储在变量中,但我似乎无法将变量中的输入输入数据库。 我没有收到任何错误消息,但我只能将变量名称存储在数据库中,而不是变量所代表的用户输入的数量。
这是我的代码的简化版本:
# import modules
import sqlite3
# user input
current_acc = float(input("Natwest Current A/C: "))
bills_acc = float(input("Natwest Bills A/C: "))
# update database
conn = sqlite3.connect("databases/bank_accs.db")
c = conn.cursor()
c.execute("""UPDATE bank_accs SET amount = 'current_acc' WHERE rowid = 1"""),
c.execute("""UPDATE bank_accs SET amount = 'bills_acc' WHERE rowid = 2""")
# query database
c.execute("SELECT rowid, * FROM bank_accs")
items = c.fetchall()
for item in items:
print(item)
# commit and close
conn.commit()
conn.close()
我已经广泛搜索了这个问题,但似乎找不到答案。 我发现的唯一真正线索是在 Stack Overflow 上,其中建议变量名应替换为占位符“?”,但不清楚如何用变量值替换占位符。
我真的很感激任何帮助或洞察我在这里做错了什么。 我对编码很陌生,这是我在这里的第一个问题,我希望我的问题有意义。
谢谢,保罗
正如你提到的,你可以使用“?” 符号作为变量的占位符,如下所示:
sql = "UPDATE bank_accs SET amount = ? WHERE rowid = 1"
c.execute(sql, (current_acc,))
sql = "UPDATE bank_accs SET amount = ? WHERE rowid = 2"
c.execute(sql, (bills_acc,))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.