我试图从python查询mysql数据库,但是在生成通配符%s和python的%s的查询ebcasue时遇到问题?,但当我运行以下程序时
query = '''select * from db where name like'Al%' and date = '%s' ''', myDateString
我有个错误
^{pr2}$
ValueError:索引36(位置为%)处不支持格式字符“”'(0x27)
如何组合Python2.7字符串构建和sql通配符?(实际查询要长得多,涉及更多变量)
Tags:
首先,您需要转义
Al
附近的百分号:另外,遵循最佳实践并将第二个参数中的查询参数传递给
^{pr2}$execute()
。这样,您的查询参数将被转义,并且可以避免sql注入:使用
format
语法构建Python字符串,使用%s
语法生成SQL
插值。这样他们就不会互相冲突了。在两件事:
不要在SQL查询中使用字符串格式(
'%s' % some_var
)。相反,将字符串作为序列(如列表或元组)传递给execute方法。您可以转义
%
,这样Python就不需要格式说明符了:相关问题 更多 >
编程相关推荐