使用ColdFusion应用程序将数据插入mySQL数据库时遇到问题。我已经尝试过REPLACE和PRESERVESINGLEQUOTES以及其他一些东西,但我现在已经迷失了。
基本上我在表单中有文本框或文本字段 - 用户不允许在字段中使用引号(发送错误 - 您的SQL语法中有错误;)并且当撇号是使用它加倍(像马克的一个词变成了马克的)
任何帮助将不胜感激。我的脑袋即将爆裂。
解决方案:cfqueryparam
答案 0 :(得分:12)
你应该使用cfqueryparam
这样的东西会起作用
<cfset userEnteredData = "I'm using apostrophes">
<cfquery>
INSERT INTO data (userText)
VALUES (<cfqueryparam cfsqltype="cf_sql_varchar" value="#userEnteredData#">)
</cfquery>
修改强>
这样做有三个原因:
CFQUERYPARAM
会自动转义引号和撇号。list
属性,它将根据cfsqltype正确地转义列表。答案 1 :(得分:9)
始终使用cfqueryparam
...它将解决您的问题并使您的应用程序更安全。