ColdFusion / mySQL - 引号和撇号

时间:2014-05-15 21:07:31

标签: mysql coldfusion cfquery

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

基本上我在表单中有文本框或文本字段 - 用户不允许在字段中使用引号(发送错误 - 您的SQL语法中有错误;)并且当撇号是使用它加倍(像马克的一个词变成了马克的)

任何帮助将不胜感激。我的脑袋即将爆裂。


解决方案:cfqueryparam

2 个答案:

答案 0 :(得分:12)

你应该使用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正确地转义列表。

答案 1 :(得分:9)

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