PyMySQL插入NULL或String

Cro*_*s87 11 python mysql pymysql

我试图插入一个title可以是NULL字符串的PyMySQL 字段().但它不起作用.

query = """
    INSERT INTO `chapter` (title, chapter, volume)
    VALUES ("%s", "%s", %d)
"""

cur.execute(query % (None, "001", 1))
cur.execute(query % ("Title", "001", 1))
Run Code Online (Sandbox Code Playgroud)

此代码插入None数据库.如果我删除第一个周围的双引号%s,它会抛出一个错误:

pymysql.err.InternalError: (1054, "Unknown column 'None' in 'field list'")
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能插入NULL?

Ret*_*ard 23

1)切勿对SQL使用字符串格式.

2)尝试以下方法:

query = """
INSERT INTO `chapter` (title, chapter, volume)
VALUES (%s, %s, %s)
"""
cur.execute(query, (None, "001", 1))
Run Code Online (Sandbox Code Playgroud)

  • @ScheissSchiesser,它可能会导致sql注入。因此最好像上面的代码示例一样使用参数绑定 (2认同)