gpt4 book ai didi

python - 使用 SQLite 从 XML 导入数据模型时无法转义表或列名

转载 作者:行者123 更新时间:2023-12-03 17:55:19 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




10年前关闭。




Possible Duplicate:
How do you escape strings for SQLite table/column names in Python?



我想使用 SQLite 从 XML 文件导入整个数据模型,虽然我知道如何使用 ? 以编程方式插入/转义值查询中的语法,这不适用于创建表或列的名称。我可以简单地将它放在使用 Python 的查询字符串中,但这感觉不对,我认为会有一种正确的方法来插入这些值,以便它们被转义,以防止 SQL 注入(inject)。

最佳答案

posted a solution that seems to work在另一个问题中。这是功能:

def quote_identifier(s, errors="strict"):
encodable = s.encode("utf-8", errors).decode("utf-8")

nul_index = encodable.find("\x00")

if nul_index >= 0:
error = UnicodeEncodeError("NUL-terminated utf-8", encodable,
nul_index, nul_index + 1, "NUL not allowed")
error_handler = codecs.lookup_error(errors)
replacement, _ = error_handler(error)
encodable = encodable.replace("\x00", replacement)

return "\"" + encodable.replace("\"", "\"\"") + "\""

它不会警告您保留标识符,因此您必须自己担心。

关于python - 使用 SQLite 从 XML 导入数据模型时无法转义表或列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6673015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com