如何过滤来自 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...)
- 1 回答
- 0 关注
- 105 浏览
添加回答
举报
0/150
提交
取消
