python - 如何在 tkinter sqlite 中使用占位符
问题描述
我有一个带有 sqlite 数据库的程序,我正在尝试使用占位符来更新记录。我不知道为什么,但我收到以下错误:TypeError:函数最多接受 2 个参数(给定 3 个)所以如果有人能弄清楚我做错了什么,这里是我的代码示例。
conn = sqlite3.connect('roominventory.db')
c = conn.cursor()
c.execute("SELECT * FROM rooms")
records = c.fetchall()
for record in records:
if record[0] == roomget:
break
t = ("N",)
rm = (roomget,)
c.execute("UPDATE rooms SET vacant = ? WHERE number = ?", t, rm)
c.fetchall()
conn.commit()
conn.close()
解决方案
你应该使用tuple
:
t = "N"
rm = roomget
c.execute("UPDATE rooms SET vacant = ? WHERE number = ?", (t, rm))
# c.fetchall() # should not call it here
conn.commit()
conn.close()
推荐阅读
- kotlin - 如何使用 Kaspresso 框架在移动模拟器上执行滚动功能以实现测试自动化?
- dpkg-buildpackage - dpkg-buildpackage 命令不适用于 -P 参数
- entity-framework - 使用(托管)后台服务时的 .NET Core / EF Core (SQL) Max Pool 问题
- c# - Npgsql 4.0 没有明确返回字典参数
- r - 对多个变量使用 dplyr 和 ggplot
- python - scipy 行搜索的问题
- visual-c++ - Visual Studio 2017 nmake 缺少 io.h
- single-page-application - OfficeJS Excel 集成中的 OidcClient 错误
- python - 如何从 csv 文件中导入数据作为 Python 中不同数据类型的列表?
- java - 如何使用修改数据字段的方法返回新对象,而不会弄乱用于调用该方法的对象的数据字段