如何将二进制数据从 MySQL 转换为 ColdFusion 11 中的字符串?
How do I convert binary data from MySQL to a string in ColdFusion 11?
我的 MySQL 数据库中有一个字段设置为数据类型 "BIT"。该字段中的值为 101101。我正在尝试使用 Coldfusion(版本 11)读取此值
我简单地使用了下面的代码:
<cfquery name=q1 datasource=#data_source#>
select * from mytable
</cfquery>
<cfoutput>
#q1.mybitfield#
</cfoutput>
我尝试在 MySQL 端使用 CAST 和 CONVERT,在 CF 端尝试使用 CharSetEncodeing 以及我能想到的 ToString、ToBase64 和 ToBinary 的每个选项。
我仍然无法让我的输出看起来像在数据库中那样。
感谢李的帮助。我永远无法只用一个步骤就让它工作,所以我使用了一个两步解决方案(如果你想这样称呼它的话)。我最终做的是设置我的 MySQL 语句以将字段转换为无符号整数(尽管十进制或带符号整数也可以),然后一旦我读入十进制值,我就可以将它转换使用您对 FormatBaseN(q1.myfield,2) 的建议转换为二进制文件。所以感谢FormatBaseN的提醒。我忘记了那个。
我的最终代码看起来像这样:
MySQL语句:
SELECT *, CONVERT(item , UNSIGNED) as di from mytable
Coldfusion 看起来像这样:
<cfset d = FormatBaseN(q1.di, 2)>
编辑
写完这篇文章后,我决定采用上面 Leigh 的回答,因为这是一个更好的解决方案。
其实我可能在想SQL服务器的位类型。对于 MySQL,一个更简单的选择可能是使用 bin() 函数,其中:
Returns a string representation of the binary value of N, ...This is equivalent to CONV(N,10,2). Returns
NULL if N is NULL.
例如:
SELECT bin(YourBitColumn) AS YourBitColumn FROM YourTable
... or
SELECT bin(YourBitColumn+0) AS YourBitColumn FROM YourTable
注意:High-order 0 bits are not displayed in the converted value。这也适用于 CF 功能。
我的 MySQL 数据库中有一个字段设置为数据类型 "BIT"。该字段中的值为 101101。我正在尝试使用 Coldfusion(版本 11)读取此值
我简单地使用了下面的代码:
<cfquery name=q1 datasource=#data_source#>
select * from mytable
</cfquery>
<cfoutput>
#q1.mybitfield#
</cfoutput>
我尝试在 MySQL 端使用 CAST 和 CONVERT,在 CF 端尝试使用 CharSetEncodeing 以及我能想到的 ToString、ToBase64 和 ToBinary 的每个选项。
我仍然无法让我的输出看起来像在数据库中那样。
感谢李的帮助。我永远无法只用一个步骤就让它工作,所以我使用了一个两步解决方案(如果你想这样称呼它的话)。我最终做的是设置我的 MySQL 语句以将字段转换为无符号整数(尽管十进制或带符号整数也可以),然后一旦我读入十进制值,我就可以将它转换使用您对 FormatBaseN(q1.myfield,2) 的建议转换为二进制文件。所以感谢FormatBaseN的提醒。我忘记了那个。
我的最终代码看起来像这样:
MySQL语句:
SELECT *, CONVERT(item , UNSIGNED) as di from mytable
Coldfusion 看起来像这样:
<cfset d = FormatBaseN(q1.di, 2)>
编辑
写完这篇文章后,我决定采用上面 Leigh 的回答,因为这是一个更好的解决方案。
其实我可能在想SQL服务器的位类型。对于 MySQL,一个更简单的选择可能是使用 bin() 函数,其中:
Returns a string representation of the binary value of N, ...This is equivalent to CONV(N,10,2). Returns NULL if N is NULL.
例如:
SELECT bin(YourBitColumn) AS YourBitColumn FROM YourTable
... or
SELECT bin(YourBitColumn+0) AS YourBitColumn FROM YourTable
注意:High-order 0 bits are not displayed in the converted value。这也适用于 CF 功能。