开发者社区 问答 正文

在字符串中构造数据库查询时,ColdFusion添加额外的引号

我正在使用ColdFusion进行编码,但是试图保留在cfscript中,所以我有一个函数可以让我传递查询以使用 #query#

但是,以某种方式,当我使用构造查询sql = "SELECT * FROM a WHERE b='#c#'" 并将其传递时,ColdFusion用2个单引号替换了单引号。因此它将成为 WHERE b=''c''最终查询。

我已经尝试了许多不同的方式来创建字符串,但是我不能只留下一个引号。即使执行字符串替换也不起作用。

知道为什么会这样吗?在这个项目期间,这毁了我生活在cfscript中的希望

问题来源于stack overflow

展开
收起
保持可爱mmm 2019-11-18 16:27:15 441 分享 版权
1 条回答
写回答
取消 提交回答
  • 您问题的答案是使用 preserveSingleQuotes(...)

    但是,您真正想要的解决方案不是以这种方式动态构建查询。不好不好

    将SQL放在cfquery标记内,并带有适当的ifs / switchs / etc,并确保所有 CF变量都使用该cfqueryparam标记。

    (注意,如果在ORDER BY子句中使用变量,则需要手动转义任何变量; cfqueryparam不能在ORDER BY子句中使用)

    2019-11-18 16:27:34
    赞同 展开评论
问答分类:
问答地址: