我有一个API,该API接收带有一个或多个参数的PATCH请求,并构建一个如下所示的查询字符串
UPDATE ${table} SET ${param1}${param2}${param3} WHERE id=${id}
问题是,如果我在参数中或最终查询中放入逗号,则只有一个参数的请求会破坏查询
UPDATE ${table} SET ${param1}, WHERE id=${id}
或
UPDATE ${table} SET ${param1},, WHERE id=${id}
如何在WHERE之前删除逗号?
答案 0 :(得分:0)
您可以将所有参数结合在一起,但是请确保输入内容已被清理以进行sql注入。假设他们已经在类似列表中
params = [param1, param2, param3];
paramsStr = params.join(", ");
示例:
["abc='def'", "xyz=123"].join(',')
#outputs:
'abc=\'def\',xyz=123'
然后在查询模板中使用paramsStr
。通过这个简单的技巧,您不必处理尾随/前导逗号
UPDATE ${table} SET ${paramsStr} WHERE id=${id}