1
이 코드 줄이이 오류를 발생시키는 MySQL 행의 데이터를 업데이트하려고합니다.MySQL 파이썬 업데이트 행
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]))'; 이것은 데이터베이스 어댑터에 인용문을 남깁니다 (더 안전하고 편리합니다). –