CFQUERY 未正确转义单引号

发布于 2024-11-25 12:54:40 字数 789 浏览 0 评论 0原文

可能的重复:
Coldfusion 在字符串中构造数据库查询时添加额外的引号

所有,

我试图在插入期间使用 getter 来引用 bean。 CF 没有正确转义“form.title”值中的单引号,因此我收到格式错误的 sql 错误。

有什么想法吗?

这是代码。

<cfscript>
form.title = "page's are awesome";

page = new model.page.page(argumentCollection = form);

<cfquery name="test" datasource="ksurvey">
insert into page(title)
values('#page.getTitle()#')
</cfquery>

Possible Duplicate:
Coldfusion adding extra quotes when constructing database queries in strings

All,

I am trying to use a getter to reference a bean during an insert. CF is not escaping the single quote properly in the value in 'form.title' and therefore I am receiving a malformed sql error.

Any ideas?

Here's the code.

<cfscript>
form.title = "page's are awesome";

page = new model.page.page(argumentCollection = form);

<cfquery name="test" datasource="ksurvey">
insert into page(title)
values('#page.getTitle()#')
</cfquery>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

半衬遮猫 2024-12-02 12:54:40

如果你打算这样做,你需要preserveSingleQuotes()

INSERT INTO page( title )
VALUES ( '#preserveSingleQuotes( page.getTitle() )#' )

当然,请插入关于应如何使用 cfqueryparam 以避免 SQL 注入攻击的标准警告。

插入页面(标题)
VALUES ()

参考:

If you're going to do it that way, you need preserveSingleQuotes()

INSERT INTO page( title )
VALUES ( '#preserveSingleQuotes( page.getTitle() )#' )

Of course, insert the standard caveat about how you should be using cfqueryparam to avoid SQL injection attacks.

INSERT INTO page( title )
VALUES ( <cfqueryparam value="#page.getTitle()#" cfsqltype="cf_sql_varchar" /> )

For reference:

东走西顾 2024-12-02 12:54:40

如果不使用 cfqueryparam,我不会将任何值插入数据库,这不安全!不仅如此,cfqueryparam 还将为您处理所有转义。

<cfquery name="test" datasource="ksurvey">
   insert into 
       page(title)
   values(<cfqueryparam value="#page.getTitle()#" cfsqltype="cf_sql_varchar">);
</cfquery>

I wouldn't insert any value into a database without using cfqueryparam, its not safe! Not only that but cfqueryparam will handle all the escaping for you.

<cfquery name="test" datasource="ksurvey">
   insert into 
       page(title)
   values(<cfqueryparam value="#page.getTitle()#" cfsqltype="cf_sql_varchar">);
</cfquery>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文