2016-08-10 48 views
1

我想插入到原始的sql的表名,但它插入一個格式錯誤的字符串,所以SQL查詢失敗。我找不到插串入SQL查詢properyly有道:Django的原始sql格式表名

from django.db import connection 
cursor = connection.cursor() 
cursor.execute("SELECT * from %s;", ['product']) 

拋出:

django.db.utils.ProgrammingError: syntax error at or near "'product'" 
LINE 1: SELECT * from 'product'; 

回答

4

你不可錯過的表也不列名作爲參數的參數。相反,這樣做:

qry = "SELECT * from %s;" % 'product' 
cursor.execute(qry) 

而被銘記的SQL-injection攻擊的可能性。

+1

啊,太棒了,只是爲了記錄查詢是'select%s從%s'。所以它需要分兩步進行插入:'qry%('%s','product')' – PepperoniPizza

+0

好的。是的,我想你不想'選擇*' – bernie