为了账号安全,请及时绑定邮箱和手机立即绑定

我的学习模式转义字符串

我的学习模式转义字符串

Go
胡说叔叔 2022-09-26 15:50:44
如何过滤来自 URL 参数示例本地主机的输入:8080/v1/data/:id而且我想在Golang中使用像参数这样的过滤器,我不能使用,因为这个过滤器是动态的,这个参数可以使用或否,就像这个例子mysql_real_escape_string?if status != "99" {    where = append(where, "vs.stats = '1'")}if cari != "" {    where = append(where, "(lm.title_member like '%"+cari+"%' OR " +    "lm.nama_member like '%"+cari+"%' )")}query := "select vs.*, lm.nama_member from volks_shift vs left join list_member lm on vs.id_m=lm.id_m where vs.id_s=?"rows, err := s.DB.QueryContext(ctx, query, id_s)我想要安全的卡里瓦尔,没有使用?
查看完整描述

1 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

包中没有转义函数,请参阅相关问题#18478(并且在使用数据库抽象层时调用mysql特定的函数也不好)。database/sql


但它也不是必需的,因为您仍然可以在动态查询中使用。只需将查询参数与查询一起动态构建,如下所示:?


    query := "SELECT vs.*, lm.nama_member" +

        " FROM volks_shift vs LEFT JOIN list_member lm ON vs.id_m=lm.id_m" +

        " WHERE vs.id_s=?"

    params := []interface{}{id_s}


    if status != "99" {

        query += " AND vs.stats = '1'"

    }


    if cari != "" {

        query += " AND (lm.title_member LIKE ? OR lm.nama_member LIKE ?)"

        params = append(params, "%"+cari+"%", "%"+cari+"%")

    }


    rows, err := s.DB.QueryContext(ctx, query, params...)


查看完整回答
反对 回复 2022-09-26
  • 1 回答
  • 0 关注
  • 105 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号