Jan*_*Jan 1 coldfusion null cfml
当我返回查询结果时,我遇到了 Coldfusion 2018 的问题,它显示如下
问题是括号中出现空值,这很奇怪,以前的coldfusion版本从来没有这样显示过,当值为空时,实际上是在抛出空指针异常问题
任何想法,我该如何解决
问题在于您的主要问题。
Coldfusion 2018中的coldfusion 查询问题,启用 null 等于 true
TLDR:您需要更新代码以检查和说明nulls,或者您应该关闭该设置,直到您可以正确处理它们。
细节:
https://coldfusion.adobe.com/2018/07/null-support-in-coldfusion-2018/
Null是现代编程语言中的一个重要结构,它提高了与其他技术堆栈和编程语言的语言互操作性。在 ColdFusion 2018 年发布之前,从外部服务返回的数据库空值或空值被转换为空字符串。因此,如果您要在 ColdFusion 应用程序中为 null 编码或根据 null 值做出决定,则没有固有的方法来实现这一点。
想象一个场景,您希望将一个空字符串作为数据库表中的列值。由于 null 也被转换为空字符串,因此无法区分 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>
Run Code Online (Sandbox Code Playgroud)
nullID。"null"名称字符串。