python更新不了mysql数据库而且不报错

database代码:


    def update(self, **kwargs):
        try:
            param = [kwargs['ITEM_CLASS'], kwargs['CODE_HIS'], kwargs['NAME_HIS'], kwargs['CODE_LOCAL_YB'], kwargs['NAME_LOCAL_YB'],
                     kwargs['NATION_CODE'], kwargs['FEE_GRADE'], kwargs['OUTP_INDI'], kwargs['INP_INDI'],
                     kwargs['MEMO']]

            self.cursor.execute(self._update, param)

            self.conn.commit()
            return True
        except mysql.Error as e:
            print("错误信息:%s" % str(e))
            return False

GUI代码

    def update(self, event):
        ITEM_CLASS = self.view.entry_ITEM_CLASS.get()
        CODE_HIS = self.view.entry_CODE_HIS.get()
        NAME_HIS = self.view.entry_NAME_HIS.get()
        CODE_LOCAL_YB = self.view.entry_CODE_LOCAL_YB.get()
        NAME_LOCAL_YB = self.view.entry_NAME_LOCAL_YB.get()
        NATION_CODE = self.view.entry_NATION_CODE.get()
        FEE_GRADE = self.view.entry_FEE_GRADE.get()
        OUTP_INDI = self.view.entry_OUTP_INDI.get()
        INP_INDI = self.view.entry_INP_INDI.get()
        MEMO = self.view.entry_MEMO.get()

        print(1)
        if ITEM_CLASS != '' and CODE_HIS != '' and NAME_HIS != '' and CODE_LOCAL_YB != '' and NAME_LOCAL_YB != '' and \
                NATION_CODE != '' and FEE_GRADE != '' and OUTP_INDI != '' and INP_INDI != '':

            if self.db.update(ITEM_CLASS=ITEM_CLASS, CODE_HIS=CODE_HIS, NAME_HIS=NAME_HIS, CODE_LOCAL_YB=CODE_LOCAL_YB,
                              NAME_LOCAL_YB=NAME_LOCAL_YB, NATION_CODE=NATION_CODE, FEE_GRADE=FEE_GRADE,
                              OUTP_INDI=OUTP_INDI, INP_INDI=INP_INDI, MEMO=MEMO):

                self.refresh('')

                _thread.start_new_thread(lambda: tk.messagebox.showinfo(message='更新成功~'), ())
            else:

                _thread.start_new_thread(lambda: tk.messagebox.showinfo(message='更新失败!'), ())
        else:

            _thread.start_new_thread(lambda: tk.messagebox.showinfo(message='请补全信息'), ())

**
不报任何错误,但就是更新不了,求帮忙看看**

self._update里存的是什么呢

加句跟踪看看情况


 
    def update(self, **kwargs):
        try:
            param = [kwargs['ITEM_CLASS'], kwargs['CODE_HIS'], kwargs['NAME_HIS'], kwargs['CODE_LOCAL_YB'], kwargs['NAME_LOCAL_YB'],
                     kwargs['NATION_CODE'], kwargs['FEE_GRADE'], kwargs['OUTP_INDI'], kwargs['INP_INDI'],
                     kwargs['MEMO']]
 
            ret = self.cursor.execute(self._update, param)
            print('update return ' ,  ret , '\nparam ', param)
 
            self.conn.commit()
            return True
        except mysql.Error as e:
            print("错误信息:%s" % str(e))
            return False

1、 你先把 self._update 最后的 ; 去掉
我记得在python 的mysql 库里 , 这个;会导致sql命令不执行。
2、 另外
['1', '666', '1213', '21321321', '21423423', '3123123', '2', '1', '0', '']
最后是空

self._update = 'UPDATE his_vs_insur_catalog SET CODE_HIS=%s, NAME_HIS=%s, CODE_LOCAL_YB=%s,NAME_LOCAL_YB=%s, NATION_CODE=%s ,FEE_GRADE=%s, OUTP_INDI=%s, INP_INDI=%s, MEMO=%s WHERE ITEM_CLASS=%s'

最后一个 where ITEM_CLASS= ‘’ , 那就不执行任何 update 啦。