2017-06-16 82 views
0

我想在pymssql中使用變量來檢索2.7 Python中的數據庫查詢。嘗試運行腳本時遇到語法錯誤。腳本如下:查詢格式化使用pymssql

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

我發現這個解決方案,如有必要,隨時糾正我。經過一番研究,我發現格式化操作符可能會受到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)