Я хочу знать, возможно ли использовать вставку параметров для имен столбцов в запросы MySQL, используя Python.
Рассмотрим следующие два запроса, оба из которых передаются 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
- общее количество строк в базе данных.
Проблема во втором запросе заключается в том, что параметры интерпретируются запросом как строка,Есть ли способ вставить их так, чтобы их можно было интерпретировать как нестроковые?Я хочу сделать это так, чтобы это было безопасно от инъекционных атак.