如何使用 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)
我正在尝试做一个简单的程序来作为 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)