使用pymssql查询格式

时间:2017-06-16 01:39:05

标签: python-2.7 pymssql

我正在尝试使用带有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()方法添加变量时,它只会出错。任何帮助都将非常感激。

干杯。

1 个答案:

答案 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)