我有一个这样的查询:PRAGMA encoding="UTF-8";INSERT OR IGNORE INTO {0} ({1}) VALUES ({2});UPDATE {0} SET {1} = "{2}" WHERE {1} = "{3}";我使用此查询来插入和更新。但是,正如您所看到的,这是一个多行查询,因此我必须使用 executescript 函数,这导致我无法使用这样的占位符来避免注入:PRAGMA encoding="UTF-8";INSERT OR IGNORE INTO {0} ({1}) VALUES (?);UPDATE {0} SET {1} = "?" WHERE {1} = "?";那么,有解决方法吗?我是否必须改变我的方法或在不使用占位符的情况下转义它?如果是这样,我如何逃避它以避免可能的注射?谢谢。
2 回答
翻阅古今
TA贡献1780条经验 获得超5个赞
您可以使用字符串格式。
command = """
PRAGMA encoding="UTF-8";
INSERT OR IGNORE INTO {0} ({1}) VALUES (?);
UPDATE {0} SET {1} = {} WHERE {1} = {};
""".format(var1, var2)
添加回答
举报
0/150
提交
取消