【问题标题】:ColdFusion/mySQL - quotation marks and apostrophesColdFusion/mySQL - 引号和撇号
【发布时间】:2014-05-15 21:07:31
【问题描述】:

我在使用 ColdFusion 应用程序将数据插入 mySQL 数据库时遇到问题。我已经尝试过 REPLACE 和 PRESERVESINGLEQUOTES 以及其他一些东西,但我现在迷路了。

它基本上是我在表单中有文本框或文本字段的任何地方 - 用户不允许在字段中使用引号(错误被发回 - 您的 SQL 语法有错误;)并且当撇号是使用它会加倍(像 Mark's 这样的词会变成 M​​ark's)

任何帮助将不胜感激。我的头快要炸裂了。


解决方案:cfqueryparam

【问题讨论】:

    标签: mysql coldfusion cfquery


    【解决方案1】:

    你应该使用cfqueryparam 这样的东西会起作用

    <cfset userEnteredData = "I'm using apostrophes">
    
    <cfquery>
    INSERT INTO data (userText)
    VALUES (<cfqueryparam cfsqltype="cf_sql_varchar" value="#userEnteredData#">)
    </cfquery>
    

    编辑

    出于三个原因这样做:

    1. 这会创建一个“bind variable”,它(除其他外)可防止 SQL 注入攻击。
    2. CFQUERYPARAM 自动转义引号和撇号。
    3. 如果您要传递一个变量列表,如果您使用 list 属性,它将根据 cfsqltype 正确转义该列表。

    【讨论】:

    • 原因 4 - 如果查询频繁运行,可以加快查询的执行时间。
    • 非常感谢。像魅力一样工作。
    【解决方案2】:

    始终使用cfqueryparam ...它将解决您的问题并使您的应用程序更安全。

    【讨论】:

    • 赞成,因为它是在马特回答前两分钟提交的。
    猜你喜欢
    • 1970-01-01
    • 2013-10-18
    • 2018-09-21
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2019-02-17
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多