1

我正在使用 ColdFusion 11 和 MySQL5 数据库,所有内容都设置为 UTF-8 字符编码。当我的选择包含单引号时,我无法使它们正常工作。这是一个简单的例子:

我有一段简单的sql:

select * from table where column = 'I've got a single quote';

在我的 sql 客户端中,我需要修改它以转义单引号,因此:

select * from table where column = 'I''ve got a single quote';

这可以正常工作。

在 ColdFusion 中,查询如下所示:

    <cfquery name="qryName" datasource="dsn">
            select * from table where column = <cfqueryparam CFSQLType="CF_SQL_VARCHAR" value="I've got a single quote" />
    </cfquery>

但是,该行没有返回,也没有错误。

我也尝试过使用 preserveSingleQuotes,但仍然没有返回任何内容:

<cfqueryparam CFSQLType="CF_SQL_VARCHAR" value="#preserveSingleQuotes(I've got a single quote)#" />

任何人都可以提出什么问题吗?

- - 没问题 - -

看来我的测试还不够好。我正在测试的数据结果与我预期的不同。我从 JSON 数据包中获取数据,当转储到浏览器时显示以下字符串:

Didn't vote 

然而,当我检查实际数据包时,我看到字符串的 JSON 表示是这样的:

Didn&#39;t vote

因此与数据库中的内容不匹配。所以,我的错,这不是问题,并且恢复了对 cfqueryparam 功能的所有信心 :-)

4

0 回答 0