我正在尝试将tablename插入到原始sql中,但它会插入格式错误的字符串,因此SQL查询失败。我无法找到一种正确的方法将字符串插入到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';
答案 0 :(得分:5)
您不能将表名或列名作为参数参数传递。而是做类似的事情:
qry = "SELECT * from %s;" % 'product'
cursor.execute(qry)
同时注意SQL-injection攻击的可能性。