sqlite Python + tkinter的INSERT INTO问题

lrl1mhuk  于 2023-02-23  发布在  SQLite
关注(0)|答案(1)|浏览(225)

我正在尝试创建一个基于Tkinter的修订应用程序,它有各种学习选项,如抽认卡和考试风格的问题模拟器。对于考试问题,用户答对的每个问题,一个新的分数和时间戳将被添加到一个名为“分数”的SQLite数据库中,即在列INT“phy”和DATETIME“phystamp”中。通过将20加到“phy”中的先前记录来更新得分,并将其时间戳添加到“phystamp”列的同一行中。然而,这个程序似乎不工作,因为记录似乎没有成功插入到数据库中。运行代码时,我没有收到任何错误。
任何其他结构化代码的方法也会有所帮助,因为我最近才开始使用python和SQL进行编码。

if realanswer == data[randomphysics][2]:
            cursor.execute("""SELECT phy FROM scores WHERE phy=(SELECT max(phy) FROM scores)""")
            lastrecord = cursor.fetchone()
            num = int(''.join(map(str, lastrecord)))
            newrecord = num + 20
            dt = datetime.now()
            physicstime = dt.strftime("%Y-%m-%d %H:%M:%S")
            decisionlabel.config(text="Correct Answer!")
            cursor.execute("INSERT INTO scores(phy,phystamp)VALUES(?,?)",(newrecord,physicstime))
            print(physicstime)

        else:
            decisionlabel.config(text=f"Incorrect Answer! The correct answer is {data[randomphysics][2]}")
xfb7svmp

xfb7svmp1#

是的,如果你写一个插入语句,SQLite将隐式地打开一个事务,你需要显式地关闭它来修改数据库。所以只要在你的cursor.execute(...)后面跟着一个connection.commit()。

相关问题