我可以使用参数来插入的MySQL查询指定列名?

问题描述 投票:0回答:1

我想知道是否可以使用参数插入列名到使用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
1个回答
0
投票

不建议使用第二个语法,第一个是确定的和安全的。

© www.soinside.com 2019 - 2024. All rights reserved.