首页 > 解决方案 > 无法通过仅检索记录的一列来删除记录。有什么见解吗?

问题描述

我做了什么:

我创建了一个表项,(在带有 mysql 连接的 python 中,将所述表存储在 mysql 数据库中),其中包含 3 列(ICODE、INAME、ITYPE)。然后,我创建了一个带有 3 个文本框的 tkinter gui 窗口,允许用户输入 ICODE、INAME、ITYPE 输入。它有两个按钮,添加项目和删除项目。

我正在尝试做的事情:

我编写了以下代码来接受 ICODE 并删除具有输入 ICODE 的记录

代码:

def delitem():
    icode=tcode.get("1.0","end-1c")
    #Database Connection
    if icode=="":
        tk.messagebox.showinfo("Please enter a code")
    else:
        import mysql.connector as sqltor
                                   
        connection=sqltor.connect(host="localhost",user="root",passwd=" 
                                                     ",database="apparelstore")
        tkcursor=connection.cursor(prepared=True)
        sql="delete from item where icode=%s"
        val="icode"
        tkcursor.execute(sql,val)
        connection.commit()
        tk.messagebox.showinfo("Item deleted")
        tkcursor.close()

错误:

执行准备好的语句的参数数量不正确

标签: pythontkinter

解决方案


声明tkcursor.execute(sql, val)应该是:

tkcursor.execute(sql,(val,))

推荐阅读