如何解决Enable Null为True时ColdFusion 2018查询的问题
当我返回查询结果时,我遇到了Coldfusion 2018的问题,它显示如下
问题是出现在方括号中的null,这很奇怪,以前的Coldfusion版本从未像这样显示过,当值为null时,它实际上引发了null指针异常问题
任何想法,我该如何解决
解决方法
问题出在您的主要问题中。
在Coldfusion 2018中具有Coldfusion查询的问题 启用了等于true的null
TLDR::您需要更新代码以检查和说明null
,或者应该关闭该设置,直到可以正确处理它们为止。
详细信息:
https://coldfusion.adobe.com/2018/07/null-support-in-coldfusion-2018/
Null
是现代编程语言中的重要构造, 改进了与其他技术堆栈的语言互操作性,并且 编程语言。在2018版ColdFusion之前,数据库为null或null 外部服务返回的值已转换为空 串。因此,如果您要为null编码或做出决定 基于ColdFusion应用程序中的空值,没有 实现此目标的固有方式。
想象一下您想将空字符串作为列的情况 数据库表中的值。由于null也将转换为空 字符串,无法区分空字符串和空字符串。 此行为还影响了json序列化和反序列化。
鉴于实际需要基于null的实现,我们决定 在ColdFusion(2018)中将null作为语言更改的一部分 释放)。
现在,在ColdFusion应用程序中,您可以将null分配给 变量,如下所示:
<cfset price = null>
您还可以使用isNull函数检查值是否为空。
<cfdump var=”# isNull(price)#”> //prints yes
<cfif price == null> // resolves to true
<cfif price eq null> // resolves to true
您可以在CF Admin中为服务器上的所有应用程序打开此设置,也可以在应用程序级别将其打开,以便仅特定的应用程序使用该设置。
启用此选项后,当数据库列的值为[null]
或空字符串时,查询将返回[empty string]
而不是null
。
<cfscript>
myquery=querynew("id,name","integer,varchar",[[null,"hello"],[1,"null"],[null,"null"]]);
writedump(myquery);
writedump(format="text",var=#myquery#);
</cfscript>
- 记录1和3的ID为
null
。 - 记录2和3的名称具有字符串
"null"
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。