如何在数据库中通过两个参数查询数据 附Python SQL实现示例
双参数数据库查询实现说明
你现有的写法存在两处可优化/修正的点:
- 多余的f字符串前缀:你的SQL语句中没有用到f-string的变量插值语法
{},加f前缀属于冗余写法,若后续误在SQL内写插值变量还会引入SQL注入风险。 - WHERE条件语法不规范:多条件过滤需要用逻辑运算符
AND/OR连接,不能直接用逗号分隔,部分数据库驱动会直接报错。
正确实现示例
# 修正后的参数化查询代码 info = db.execute( "SELECT * FROM `storage_users` WHERE status = ? AND Type = ?", [status, Type] ) # 若使用sqlite3驱动,可通过以下方法获取查询结果 # 取全部匹配结果 results = info.fetchall() # 仅取第一条匹配结果 result = info.fetchone()
注意事项
- 参数列表的顺序必须和SQL中占位符
?的出现顺序严格对应,你当前的参数顺序[status, Type]和占位符顺序匹配,不需要调整。 - 表名使用反引号
`包裹是SQL通用的标识符引用规范,兼容性优于单引号。 - 参数化查询是官方推荐的安全写法,可完全避免SQL注入漏洞,不要改用字符串拼接的方式传入参数。
内容的提问来源于stack exchange,提问作者Yurii Krestovskiy
相关产品推荐
相关产品推荐

