python sqlite3更新数据,python sqlite3-使用f字符串更新数据库函数

我有自己的个人数据库,这是为了好玩(所以我不把SQL注入作为我自己的私人数据库),我正在尝试更改我创建的使用字符串格式(.format())和占位符(?,然后使用f字符串。我遇到了一个问题,在我将sqlite3查询更改为f字符串后,将指定列更新为指定行的函数之一将无法运行。

这是我当前使用F字符串的函数:

import sqlite3

from tabulate import tabulate

conn = sqlite3.connect("Table.db")

c = conn.cursor()

def updatedb(Column, Info, IdNum):

with conn:

data = c.execute(f"UPDATE Table_name SET {Column} = {Info} WHERE IdNum={IdNum}")

c.execute(f"SELECT * FROM Table_name WHERE IdNum = {IdNum}")

print(tabulate(data, headers="keys", tablefmt="grid", stralign='center', numalign='center'))

函数通过更新指定行的指定列以及该列中所需的新信息来更新表。例如,在一个3x 3表中,如果第1行第2列是17行,我可以使用函数将第1行第2列更新为18行(如果该列是年龄或其他值)。之后的select查询只是选择更新后的特定行,之后的print语句使用制表包打印出整洁有序的表。

每当我尝试使用此函数时,得到的错误是:

sqlite3.OperationalError: no such column: Info

无论我在函数中输入什么信息变量,都会导致错误,但我无法解决问题。

这是我在尝试更改为f字符串之前所使用的更新语句,它对我很有用:

data = c.execute("UPDATE Table_name SET {} = ? WHERE IdNum=?".format(Column), (Info, IdNum))

将上面的查询更改为F字符串似乎不是那么大的变化,但它不起作用,因此任何反馈都会受到赞赏。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值