MYSQL DOUBLE值不正确Python 3



我在使用UPDATE查询时遇到问题。我使用的是python 3.7,并使用tkinter构建gui。我有一个输入框,用户可以通过ID号选择项目,它会自动填充以下输入框,然后用户可以修改条目。我的错误发生在保存更改的时候。我有一个按钮,点击后会调用函数save。见下文

def save():
conn = mysql.connect(
host="localhost",
user="XXXX",
passwd="XXXX",
database="inventory")
c = conn.cursor()
a0 = selectent.get()
a1 = item.get()
a2 = asset_tag.get()
a3 = amount.get()
a4 = notes.get()
c.execute(""" UPDATE items SET
item = 'a1',
asset_tag = 'a2',
amount = 'a3',
notes = 'a4'
WHERE id = 'a0' """)

conn.commit()
conn.close()

我在自学我的SQL,从我读到的关于这个错误的信息来看,这个错误似乎是在尝试比较WHERE子句中的数字和字符串时发生的。这是有意义的,因为我的回溯将我带到代码中的那一行。

Traceback (most recent call last):
File "C:UsersmbrowAppDataLocalProgramsPythonPython37libtkinter__init__.py", line 1705, in __call__
return self.func(*args)
File "C:UsersmbrowAppDataLocalProgramsPythonPython37Inventory3editmodule.py", line 61, in save
WHERE id = 'a0' """)
File "C:UsersmbrowAppDataLocalProgramsPythonPython37libsite-packagesmysqlconnectorcursor_cext.py", line 266, in execute
raw_as_string=self._raw_as_string)
File "C:UsersmbrowAppDataLocalProgramsPythonPython37libsite-packagesmysqlconnectorconnection_cext.py", line 475, in cmd_query
sqlstate=exc.sqlstate)
mysql.connector.errors.DataError: 1292 (22007): Truncated incorrect DOUBLE value: 'a0'

有人能向我解释一下吗?这样我就能更好地了解发生了什么?

我知道金额拼写错误

使用参数化查询和准备语句

c.execute(""" UPDATE items SET
item = %s,
asset_tag = %s,
amount = %s,
notes = %s
WHERE id = %s """,(a1,a2,a3,a4,a0))

最新更新