我有一个名为Students
的数据库表,我想用SQL删除一条记录。这里是我的代码:如何在Python中使用MySQL删除记录?
uid = int(input("Please enter students ID: "))
c.execute("DELETE FROM Students WHERE ID = (uid) ")
我想输入ID
变量(uid
)为提前c.execute
感谢。
我有一个名为Students
的数据库表,我想用SQL删除一条记录。这里是我的代码:如何在Python中使用MySQL删除记录?
uid = int(input("Please enter students ID: "))
c.execute("DELETE FROM Students WHERE ID = (uid) ")
我想输入ID
变量(uid
)为提前c.execute
感谢。
基本语法是:
"some string: %s, some int: %i, some double: %d" % (string_var,int_var,double_var)
这样:
uid = int(input("Please enter students ID: "))
c.execute("DELETE FROM Students WHERE ID = %i" % (uid))
不得用作其他答案推荐串插;而在这个特定情况下,它可能是正常的,通常它是不安全的,因为它可以打开SQL注入。相反,使用参数的支持,在execute
方法:
uid = int(input("Please enter students ID: "))
c.execute("DELETE FROM Students WHERE ID = %s", (uid,))
什么丹尼尔·罗斯曼说的应该是正确的答案。
您可以插入ID作为.execute方法的参数。有关于这here
答案我猜你正在寻找:'c.execute( “DELETE FROM学生WHERE ID = {}” .format(UID))' – JustRufus
@JustRufus请记住,这个例子中暴露到SQL注入。 – DeepSpace
它不是,因为它是int ...你不能用int注入任何代码。 –