Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
预定义函数,用于在SQL中使用Python格式化字符串_Python_Mysql - Fatal编程技术网

预定义函数,用于在SQL中使用Python格式化字符串

预定义函数,用于在SQL中使用Python格式化字符串,python,mysql,Python,Mysql,首先,我是法国人,所以如果你看到我留言中有任何错误,请毫不犹豫地告诉我!:) 我的问题是:我目前正在制作一个Python函数,用于构建SQL请求,在数据库中插入一个大字符串(网页的HTML代码) 您可能知道,SQL对您使用的字符串有一些要求。例如,你不能使用“我是一个开发人员”这句话,因为“我是一个开发人员” 您知道是否存在任何预定义函数来修改链,以确保我可以在SQL请求中使用它吗 我之所以这样问,也是因为我不知道对一个字符串的所有要求都是可以毫无问题地解释的 我希望我已经讲清楚了,如果我没有讲

首先,我是法国人,所以如果你看到我留言中有任何错误,请毫不犹豫地告诉我!:)

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

您可能知道,SQL对您使用的字符串有一些要求。例如,你不能使用“我是一个开发人员”这句话,因为“我是一个开发人员”

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

我之所以这样问,也是因为我不知道对一个字符串的所有要求都是可以毫无问题地解释的

我希望我已经讲清楚了,如果我没有讲,请告诉我! 祝你今天愉快

编辑:我使用的是Python 3.4.3
EDIT2:我使用的是MySQL,我相信你只需要转义这个角色,这个应该可以

my_sql_string = 'this my \'word\' with escaped character'

另外,您可能应该从sqlalchemy中查看“text”对象:

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

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

  • 根据您的情况(MySQL、Oracle、SQLite等),确保您使用了正确的库(以及最新的库)

  • 转义字符串。图书馆通常有这样一个功能。您也可以使用
    格式
    %

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

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

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

编辑: 如果你涉及边缘案例,陈述的长度并不重要

编辑2: 如果您使用的是mysql python,请使用
MySQLdb.escape\u字符串(语句)

如果您使用的是mysql,您可以使用
escape\u string
函数。您使用哪个模块将文本插入数据库?如果您想插入带有单引号的文本,只需在python中使用双引号即可
“我是开发人员”
@JanZeiseweis“我是开发人员”就是一个例子,我必须导入数百个HTML页面,其中包含大量“。我正在使用mysql.connector构建和发送我的请求。您正在使用哪个数据库引擎?我正在使用MySQLYup,但我的变量包含数千个字符,我有数百个变量,所以我正在寻找一种方法来自动化这件事。我想我的问题应该是这样的:我想通过SQL请求在我的数据库中放入一个字符串,但我不一定知道所有的要求来做到这一点而不会出错,而且我确信HTML页面的代码中包含大量的“和”“不行。所以我想用一个函数自动化字符串的格式。正如我所说的,您用来进行sql调用的库具有转义字符串的函数。使用此选项,您将能够将任何字符串推入数据库。您使用的是哪一个数据库?转义字符串将为您覆盖该数据库。试试看。检查并消毒。它的命名很有创意