gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 16:20:28 28 4
gpt4 key购买 nike

我想知道是否可以使用 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 是数据库中的总行数。

第二个查询中的问题是参数被查询解释为字符串。有没有办法插入它们以便它们可以被解释为非字符串?我想以一种免受注入(inject)攻击的方式来做到这一点。

最佳答案

不建议使用第二种语法,第一种语法就可以而且安全。

关于python - 我可以使用参数插入来指定 MySQL 查询的列名吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54546877/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com