Я пытаюсь обновить данные в строке MySQL, которые эта строка кода бросает эту ошибку.Строки обновления MySQL Python
for k in range(city_count):
cur.execute("UPDATE hqstock SET citylastprice = '%s' WHERE id = '%s'"%(CITYPRICE[k], tID[k]))
Ошибка, которая была возвращена:
File "C:\Python27\lib\site-packages\MySQLdb\cursors.py", line 201, in execute
self.errorhandler(self, exc, value)
File "C:\Python27\lib\site-packages\MySQLdb\connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
InterfaceError: (0, '')
Это моя структура таблицы.
+--------------------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+------------------+------+-----+---------+-------+
| id |int(11) unsigned | NO | PRI | NULL | |
| barcode | char(15) | YES | | NULL | |
| citycurstock | smallint(6) | YES | | NULL | |
| citylastprice | demical(4,2) | YES | | NULL | |
| city | varchar(60) | YES | | NULL | |
+--------------------+------------------+------+-----+---------+-------+
Кто-нибудь знает, что не так с моей заявкой на запрос? или почему это не работает?
возможно дубликат [MySQLdb interfaceError] (http://stackoverflow.com/questions/5704590/mysqldb-interfaceerror) и [InterfaceError (0, '')] (HTTP: //stackoverflow.com/q/6650940) –
Примечание: не используйте строчную интерполяцию; вместо этого используйте SQL-параметры: 'cur.execute (" UPDATE hqstock SET citylastprice =% s WHERE id =% s ", (CITYPRICE [k], tID [k]))'; это оставляет котировку на адаптер базы данных (безопаснее и удобнее). –