我对Python很陌生。我需要一个简单明了的脚本添加到每个列表元素的报价。让我再解释一下。这是我的代码。
parameters = ['a', 'b', 'c']
query = "SELECT * FROM foo WHERE bar IN (%s)" % (', '.join(parameters))
我想用这个来查询。但结果是无效查询。这就是结果。
SELECT * FROM foo WHERE bar IN (a, b, c, d)
我想喜欢这个:
SELECT * FROM foo WHERE bar IN ('a', 'b', 'c', 'd')
如何在连接元素时添加引号。
5条答案
按热度按时间xpszyzbs1#
一个简单的解决方案是迭代
parameters
列表,并在每个元素的开头和结尾附加引号:注意:这很容易受到SQL注入(无论是巧合还是故意的)。更好的解决方案是让数据库引用并插入这些值:
它更容易阅读和正确处理引用。
t9eec4r02#
对于简单的参数,以下方法应该有效:
当参数名本身包含引号时,这可能会崩溃,因为转义规则不同。
mgdq6dx13#
如你所问,使用这个:
由于您正在创建一个SQL查询,请使用您的数据库的有关输入卫生的功能(例如mysqldb)。您不希望最终遇到像Bobby Tables这样的问题。
s71maibg4#
一般情况下(忽略SQL)
jucafojl5#
如果你的列表看起来像
输出将是