如何使用 python 输入更新 mysql

How to UPDATE mysql using a python input

我正在尝试做一个简单的程序来作为 contact_book,但是当我尝试更新一行时我无法解决错误。 这是代码:

oque = input("Digite que informação você gostaria de mudar: 'nome', 'numero', 'endereço'. Escreva 
exatamente como digitado nessa frase. ")
para = input("Digite a informação que deseja inserir  no lugar da informação anterior: ")
index = input("Digite o 'index_num do contato. Se não lembrar, consulte o contato. ")

editar = (oque, para, index,)
sql = "UPDATE contato SET %s = %s WHERE index_num = %s"

my_cursor.execute(sql, editar,)

my_database.commit()

print("Pronto!")

将所有输入放在一个变量中然后提交的相同语法适用于 INSERT 联系人,但在更新时出现错误:

mysql.connector.errors.ProgrammingError: 1064 (42000): 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 '''nome'' = 
''Ivone'' WHERE index_num = ''2''' at line 1

您需要在执行前将字段名称作为查询的一部分提供:

editar = (para, index,)

然后:

sql = "UPDATE contato SET %s = %%s WHERE index_num = %%s" % (oque)

sql = "UPDATE contato SET {} = %s WHERE index_num = %s".format(oque)```

或(python3.6+)

sql = f"UPDATE contato SET {oque} = %s WHERE index_num = %s"

然后:

my_cursor.execute(sql, editar)