首页 > 解决方案 > 如何在 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()

标签: pythonsqlite

解决方案


你应该使用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()

推荐阅读