python | При использовании библиотеки py mysql для реализации базы данных SQL в операторе SQL произошла синтаксическая ошибка, которая не может быть разрешена - PullRequest
0 голосов
/ 01 апреля 2020

полный код: import pymysql db = py mysql .Connect (host = "localhost", user = "root", port = 3306, db = "spider") cursor = db.cursor () data = {'id': '20120001', 'name': 'BOb', 'age': 21} table = 'Students' keys = ','. join (data.keys ()) values ​​= ', '.join (['% s '] * len (data))

**sql = "INSERT INTO {table}({keys}) VALUES({values}) ON DUPLICATE KEY UPDATE".format(table=table,keys=keys,values=values)**
update= ','.join(['{key}=%s'.format(key=key) for key in data])
sql += update
try:
    if cursor.execute(sql,tuple(data.values())*2):
        print("Succesful")
        db.commit()
except Exception as e:
    print(e.args)
    db.rollback()
db.close()

выражение ошибки:
1064, "В вашем SQL есть ошибка синтаксис; проверьте руководство, соответствующее вашей версии сервера MariaDB, чтобы узнать правильный синтаксис для использования рядом с 'UPDATEid =' 20120001 ', name =' BOb ', age = 21' в строке 1 "). Я не знаю, как это сделать Решите это. Если вы можете мне помочь, большое спасибо за это.

1 Ответ

0 голосов
/ 14 апреля 2020
UPDATEid='20120001',name ...

UPDATE - ключевое слово. id - это имя столбца. UPDATEid это что?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...