更正python代码以在MySQL中插入空值

2021-03-01 03:51:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用python将一些变量插入MySQL数据库。有时变量是字符串,有时它们不是字符串。在

下面是我尝试的一个非常简化的版本:

import MySQLdb as mdb
f = "Bob"
m = None
l = "Smith"

db = mdb.connect("blah blah blah")
with db:
    cur.execute("INSERT INTO name (first, middle, last) VALUES ('{0}', '{1}', '{2}')".format(f, m, l))

问题是它将“None”作为字符串而不是实际的NULL值插入。在

我可以通过将最后一行改为:

^{pr2}$

但我相信这会使代码容易受到MySQL注入攻击。 如果有人知道使用.format方法的正确方法,我将不胜感激。在

1条回答
网友
1楼 ·

插入数据的预期方法如下:

cur.execute("INSERT INTO name (first, middle, last) VALUES (%s, %s, %s)", (f, m, l))

像第一个示例中那样格式化字符串会使应用程序容易受到SQL注入的攻击。在

相关问题