gpt4 book ai didi

python在sql查询中避免%s

转载 作者:行者123 更新时间:2023-11-30 23:23:34 26 4
gpt4 key购买 nike

我正在尝试从 python 查询 mysql 数据库,但在生成通配符 % 和 python %s 的查询 ebcasue 时遇到问题。作为一个解决方案,我发现使用 ?,但是当我运行以下命令时,

query = '''select * from db where name like'Al%' and date = '%s' ''', myDateString

我收到错误

cursor.execute(s %'2015_05_21')

ValueError:索引 36(% 的位置)处不支持格式字符 ''' (0x27)

如何将 python 2.7 字符串构建和 sql 通配符结合起来? (实际查询要长很多,涉及的变量也更多)

最佳答案

首先,您需要转义Al附近的百分号:

'''select * from db where name like 'Al%%' and date = '%s''''

此外,请遵循最佳实践,并将第二个参数中的查询参数传递给 execute()。这样您的查询参数将被转义,并且您将避免 sql 注入(inject):

query = """select * from db where name like 'Al%%' and date = %s"""
cursor.execute(query, ('2015_05_21', ))

关于python在sql查询中避免%s,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23881245/

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