Python MySQLdb占位符语法


问题内容

我想使用在此示例中看到的占位符:

cursor.execute ("""
    UPDATE animal SET name = %s
    WHERE name = %s
    """, ("snake", "turtle"))

除非我希望将查询作为自己的变量,否则需要将查询插入多个数据库中,如下所示:

query = """UPDATE animal SET name = %s
           WHERE name = %s
           """, ("snake", "turtle"))
cursor.execute(query)
cursor2.execute(query)
cursor3.execute(query)

做这样的事情的正确语法是什么?


问题答案:
query = """UPDATE animal SET name = %s
           WHERE name = %s
           """
values = ("snake", "turtle")

cursor.execute(query, values)
cursor2.execute(query, values)

或者如果您想将它们分组在一起…

arglist = [query, values]
cursor.execute(*arglist)
cursor2.execute(*arglist)

但第一种方法可能更易读。