如何正确执行此操作:
我想做这样的查询:
query = """SELECT * FROM sometable
order by %s %s
limit %s, %s;"""
conn = app_globals.pool.connection()
cur = conn.cursor()
cur.execute(query, (sortname, sortorder, limit1, limit2) )
results = cur.fetchall()
所有操作都正常,但%s%s的顺序没有将字符串正确放入。这是把这两个替换词加上引号。
结果是:
ORDER BY 'somecol' 'DESC'
错误的应该是:
ORDER BY somecol DESC
非常感谢您的帮助!
不是SQL查询的所有部分都可以参数化。例如,DESC关键字不是 一个参数。试试看
查询字符串中的%s占位符是为参数保留的。%“order by%s%s”中的s不是参数。您应该在两个步骤中生成查询字符串:
不要忘记过滤第一个替换以防止SQL注入的可能性
相关问题 更多 >
编程相关推荐