gpt4 book ai didi

python - 用于在 Python 中格式化要在 SQL 中使用的字符串的预定义函数

转载 作者:可可西里 更新时间:2023-11-01 08:24:16 25 4
gpt4 key购买 nike

首先我是法国人,所以如果您在我的消息中发现任何错误,请不要犹豫告诉我! :)

这是我的问题:我目前正在制作一个 Python 函数,以构建 SQL 请求,在我的数据库中插入一个大字符串(网页的 HTML 代码)。

您可能知道,SQL 对您使用的字符串有一些要求。例如,你不能使用 'I'm a developper' 句子因为 ' ' ' 的事情。

您是否知道是否存在任何预定义函数来修改链以确保我可以在 SQL 请求中使用它?

我问这个也是因为我不知道要毫无问题地解释字符串的所有要求。

我希望我已经清楚了,如果我还没有,请告诉我!祝你有美好的一天。

编辑:我在 Python 3.4.3EDIT2:我正在使用 MySQL

最佳答案

这是一个相当宽泛的问题,我认为您应该对其进行细化。

对于一般的 SQL 良好实践,您首先需要:

  • 根据您的情况(MySQL、Oracle、SQLite 等)确保您使用的是正确的库(并且是最新的)

  • 转义字符串。图书馆通常有这个功能。您还可以使用 format%

  • 测试、单元测试或至少手动测试...我通常对原型(prototype)所做的是首先生成 SQL 语句并打印它。然后我复制这个语句并直接在 SQL 命令行中测试它。这样您就可以确定它适用于 SQL。然后,您需要使用 \ 转义特殊字符。不过,第二点将涵盖这一点。

  • 最后,您希望将代码包装在 try/catch 语句中,以便控制失败。

  • 如果它仍然不起作用,一个不错的,有点 hacky 的 .replace() 会。例如:.replace("'", "\'")。确保您可以标准化您的输入。

编辑:如果您涵盖边缘情况,则声明的长度无关紧要。

编辑 2:如果您使用的是 mysql-python,请使用 MySQLdb.escape_string(statement) https://dev.mysql.com/doc/connector-python/en/connector-python-api-cext-escape-string.html

关于python - 用于在 Python 中格式化要在 SQL 中使用的字符串的预定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48462501/

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