【发布时间】:2019-02-06 05:00:50
【问题描述】:
我想知道是否可以使用 Python 将列名的参数插入到 MySQL 查询中。
考虑以下两个查询,这两个查询都传递给MySQLCursor.execute()。第一个:
query = (
'SELECT username, COUNT(*)'
'FROM `entry`'
'GROUP BY username;'
)
cursor.execute(query)
第二个:
query = (
'SELECT %s, COUNT(*)'
'FROM `entry`'
'GROUP BY %s;'
)
data = ('username', 'username')
cursor.execute(query, data)
其中第一个返回我期望的结果(计算每个不同值出现在用户名列中的次数),第二个返回意外结果,特别是 [(u'username', n)] 其中n 是总行数在数据库中。
第二个查询的问题是参数被查询解释为字符串。有没有办法插入它们以便它们可以被解释为非字符串?我想以一种不受注入攻击的方式来做到这一点。
【问题讨论】:
标签: python mysql mysql-python