我已经将一个站点从ColdFusion 10迁移到了ColdFusion 2016,并且我注意到在查询MySql数据库时,以前为null的tinyint(1)字段将作为空值返回到ColdFusion,但现在返回为0。
有没有人知道这是MySql还是CF2016,以及如何让它再次返回空值?
我已经用谷歌搜索过了,但是所有的结果似乎都是关于把0变成null。相反,我需要它!CF2018 seems to have changed their null support,但我找不到任何与C2016相关的东西。
发布于 2018-09-06 13:22:44
对于MySQL JDBC驱动程序,有一个属性tinyInt1isBit,它被default设置为true (当该属性为true时,tinyint(1)字段将被视为bit字段)。此功能可以通过向其添加tinyInt1isBit=false来修改连接字符串来覆盖。
jdbc:mysql://10.0.0.140:3306/testdb?tinyInt1isBit=false
但是当我们创建一个ColdFusion数据源时,默认情况下tinyInt1isBit=false会被添加到连接字符串中(根据我的个人经验)。当我们进行本地安装时,可以在ColdFusion2016\cfusion\lib\neo-datasource.xml文件中看到这一点。
我不确定hostek是如何处理从neo-datasource.xml中摆脱这个问题的。我相信您将从hostek控制面板创建或编辑数据源。我不记得在编辑DSN时是否有输入连接字符串的选项,但如果有对应的字段,那么您可以在其中添加tinyInt1isBit=false,这应该可以解决您的问题。
https://stackoverflow.com/questions/52147924
复制相似问题