我正在尝试从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语法错误。你能告诉我怎样才能解决这个问题?
我在插入值时遇到了同样的问题,但问题是通过stackoverflow的一些人的帮助解决的。这是插入的解决方案,效果很好:
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。请帮忙。
答案 0 :(得分:0)
%s称为绑定变量。删除可以完全相同:
cursor.execute("DELETE FROM test WHERE name=%s", (Value,));
答案 1 :(得分:0)
%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)
您需要使用Value
和Value2
作为变量(不是字符串),并将%s
与''
资料来源:使用这个东西