You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python&MySQL场景下如何实现SQL Select与类别值的参数化分离

完全可以实现你要的改造,参数化查询适配所有SQL操作场景,而且这种写法能避免SQL注入风险,是非常规范的数据库操作写法。

改造逻辑和你写的insert函数逻辑完全一致:

  • 给get_category函数增加category形参,用来接收外部传入的查询分类
  • 把SQL语句里硬编码的固定分类'Groceries'替换为参数占位符%s,注意这里不需要给%s加单引号,MySQL连接驱动会自动处理参数的类型转义
  • 把传入的category参数打包成元组作为execute方法的第二个参数传入即可,这里要注意如果元组只有一个元素,必须在元素后面加逗号,否则Python会把它识别为单个变量而不是元组,会触发参数格式错误

改造后的代码示例:

# Get a given category from the database
def get_category(category):
    sql = "SELECT * FROM Exp1 WHERE category = %s ORDER BY date DESC"
    val = (category,)
    mycursor.execute(sql, val)
    for x in mycursor:
        print(x)

调用时直接传入你要查询的分类即可,比如要查询Groceries分类,直接执行get_category("Groceries")就可以得到对应结果。

内容的提问来源于stack exchange,提问作者FayZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 01:36:04