我正在尝试使用带有pymssql的变量来检索2.7 Python中的数据库查询。尝试运行脚本时遇到语法错误。脚本如下:
school = 'Some School'
sql_statement = '''
SELECT TOP 10
a.Item_Name,
sum(a.Sales) 'Total_Spend'
FROM some_DB a
WHERE
a.School_Name = {}
GROUP BY a.Health_Rating, a.Item_Name
ORDER BY 2 DESC;
'''.format(school)
连接没有问题,所以我已经排除了该代码。
当我尝试使用.format()方法添加变量时,它只会出错。任何帮助都将非常感激。
干杯。
答案 0 :(得分:0)
我找到了这个解决方案,如有必要,请随时纠正我。经过一些研究,我发现格式化操作符可以进行SQL注入,并且不允许转义。从上一个问题获得的信息variables with python and sql
school = 'Some School'
sql_statement = '''
SELECT TOP 10
a.Item_Name,
sum(a.Sales) 'Total_Spend'
FROM some_DB a
WHERE
a.School_Name = (%s)
GROUP BY a.Health_Rating, a.Item_Name
ORDER BY 2 DESC;
'''
cursor.execute(sql_statement, school)