gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 01:31:37 24 4
gpt4 key购买 nike

我在 ColdFusion 中编码,但试图留在 cfscript 中,所以我有一个函数允许我传入查询以运行它
<cfquery blah >
#query#
</cfquery>

但不知何故,当我使用 sql = "SELECT * FROM a WHERE b='#c#'" 构建查询时并传入,ColdFusion 已将单引号替换为 2 个单引号。所以它变成了 WHERE b=''c''在最终查询中。

我尝试了很多不同的方法来创建字符串,但我不能让它只留下一个引号。即使进行字符串替换也没有效果。

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

最佳答案

根据设计,ColdFusion 在 <cfquery> 内插入变量时会转义单引号。标签。

做你想做的事,你需要使用 PreserveSingleQuotes() 功能。

<cfquery ...>#PreserveSingleQuotes(query)#</cfquery>

但是,这并没有解决您面临的 SQL 注入(inject)的危险。

使用 <cfqueryparam> 还允许您的数据库缓存查询,这在大多数情况下会提高性能。

阅读 an old Ben Forta column 可能会有所帮助和 a recent post by Brad Wood有关使用 <cfqueryparam> 的好处的更多信息.

关于sql - ColdFusion 在字符串中构造数据库查询时添加额外的引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/266586/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com