【发布时间】:2021-04-25 09:39:42
【问题描述】:
我正在尝试使用 MySQL 连接器为我的 API 创建一个过滤器。 我处理用户生成的查询,如下所示:
user_type_id > 1 并在WHERE 子句中使用它们。
由于查询来自用户,我想将它们作为参数传递给 cursor.execute(query, params) 以避免注入。
当我跑步时
cursor.execute("SELECT * FROM table WHERE %s > %s", ('user_type_id', 1))
它没有按我的意愿工作。
参数绑定到操作中的变量。
由于他们不允许 params 包含除变量(例如列名)以外的任何内容,我想这是有原因的。
你能告诉我只允许变量作为参数传递的原因吗? 我也想知道这个问题有没有好的解决方法?
【问题讨论】:
标签: python mysql python-3.x mysql-python