У меня проблема с тем, чтобы заставить работать мой запрос на обновление. Я использую python 3.7 и строю gui, используя tkinter. У меня есть поле ввода, в котором пользователь может выбрать элемент по номеру идентификатора, которое автоматически заполняет следующие поля ввода, и пользователь может затем изменить записи. Моя ошибка возникает, когда приходит время сохранить изменения. У меня есть кнопка, которая вызывает функцию сохранения при нажатии. см. ниже
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 = ammount.get()
a4 = notes.get()
c.execute(""" UPDATE items SET
item = 'a1',
asset_tag = 'a2',
ammount = 'a3',
notes = 'a4'
WHERE id = 'a0' """)
conn.commit()
conn.close()
Я самоучка mySQL, и из того, что я прочитал об этой ошибке, видно, что ошибка возникает при попытке сравнить число и строку в предложении WHERE. Это имеет смысл, поскольку моя трассировка возвращает меня к этой строке в моем коде.
Traceback (most recent call last):
File "C:\Users\mbrow\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 1705, in __call__
return self.func(*args)
File "C:\Users\mbrow\AppData\Local\Programs\Python\Python37\Inventory3\editmodule.py", line 61, in save
WHERE id = 'a0' """)
File "C:\Users\mbrow\AppData\Local\Programs\Python\Python37\lib\site-packages\mysql\connector\cursor_cext.py", line 266, in execute
raw_as_string=self._raw_as_string)
File "C:\Users\mbrow\AppData\Local\Programs\Python\Python37\lib\site-packages\mysql\connector\connection_cext.py", line 475, in cmd_query
sqlstate=exc.sqlstate)
mysql.connector.errors.DataError: 1292 (22007): Truncated incorrect DOUBLE value: 'a0'
Может кто-нибудь объяснить мне, чтобы я лучше понял, что происходит?
Я знаю, что сумма написана неправильно.