Я пытаюсь вставить некоторые данные в таблицу в MySQL.Но что-то не так с моим синтаксисом sql, и я просто не смог его найти, тоже ничего не могу найти в сети.
Попытался использовать необработанную строку для вставки, получил то же сообщение об ошибке.
def save_room_info(data):
conn = pymysql.connect(...)//this goes right
try:
with conn.cursor() as cursor:
table = 'room'
keys = ', '.join(data.keys())
values = ', '.join(['%s'] * len(data))
sql = 'INSERT INTO {table}({keys}) VALUES ({values})'.format(table=table, keys=keys, values=values)
try:
if cursor.execute(sql, tuple(data.values())):
print('Successful')
conn.commit()
except Exception:
print('Failed', sys.exc_info())
conn.rollback()
finally:
conn.close()
def main():
data = {
'title': 'a',
'screenshot': 'a',
'type': 0,
'viewCount': 0,
'nickname': 'Allen',
'level': 20,
'headUrl': 'a',
'tag': 'a',
'rank': 3,
'followerCount': 290
}
save_room_info(data)
В таблице 'room' есть поле 'id', для которого я установил значение Автоинкремент.И «id» является единственным первичным ключом.Но даже если я добавил идентификатор во время вставки данных, он все равно выдал то же сообщение об ошибке.
Получил это сообщение об ошибке:
ProgrammingError(1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'rank, followerCount) VALUES ('a', 'a', 0, 0, 'Allen', 20, 'a', 'a', 3, 290)' at line 1"),