开发者社区> 问答> 正文

在字符串中构造数据库查询时,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 409 0
1 条回答
写回答
取消 提交回答
  • 您问题的答案是使用 preserveSingleQuotes(...)

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

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

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

    2019-11-18 16:27:34
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载