使用 Python 在 MySQL 中更新和删除输入的值

Update and delete, with value typed, in MySQL using Python

我正在尝试从 MySQL 数据库中更新和删除字段的一行,该行的名称与键入的值相同。我正在使用 python 2.7 和 MySQLdb。这是脚本的一部分:

Value = int(input("Type a number between 1 and 10: "))
cursor.execute("DELETE FROM test WHERE name=Value ")
Value2 = int(input("Type a number between 11 and 20: "))
cursor.execute("UPDATE test SET id='abcd' WHERE name=Value2")

我实际上是在尝试找出如何将我从键盘输入的内容转换为更新和删除 mysql 代码,并使用该值作为名称字段行的名称在数据库中进行更改.现在它给了我第 2 行和第 4 行的 SQL 语法错误。你能告诉我如何解决这样的问题吗?

我在插入值时遇到了同样的问题,但在 Whosebug 的一些人的帮助下问题得到了解决。这是插入的解决方案,效果很好:

cursor.execute("INSERT INTO test VALUES ('Number', %s)", (Value,))
cursor.execute("""INSERT INTO test VALUES ('Number', {})""".format(Value)
cursor.execute("""INSERT INTO test VALUES ('Number', %s)""" % Value)

我也想知道这个%s是怎么叫的。请帮忙。

%s 称为绑定变量。删除可以完全相同:

cursor.execute("DELETE FROM test WHERE name=%s", (Value,));

%s 是字符串替换。它的工作方式类似于 print "hi %s, my name is %s" % ("Loudas", "Matthew")

至于您的 mysql 代码,语法有点不对。应该是:

Value = int(input("Type a number between 1 and 10: "))
cursor.execute("DELETE %s FROM test WHERE name='%s'" % Value)
Value2 = int(input("Type a number between 11 and 20: "))
cursor.execute("UPDATE test SET id='abcd' WHERE name='%s'" %s Value2)

您需要使用 ValueValue2 作为变量(不是字符串),并用 ''

包围 %s

资料来源:使用这些东西