2
简单的例子 这是在存储过程中PHP转换NULL在MSSQL空字符串存储过程
select coalesce('(' + phone + ') ', '(' + number + ') '
from example_table
因此,如果手机没有空,我回去(手机)否则我回去(数量)。
这样做的原因是MSSQL被配置为CONCAT_NULL_YIELDS_NULL,基本上如果在concat中有一个NULL,那么一切都变为NULL。
可正常工作,当我从一个客户端(SQLPro)运行
当我打电话从PHP代码,这个SP我得到这个()括号只有当手机的值为NULL和阅读周围似乎PHP将NULL转换为空字符串。
有谁知道一种方法来解决这个问题吗?也许php.ini中的配置会强制PHP将NULL值视为特殊值NULL而不是将它们转换为空字符串?
这是有道理的。不幸的是,这是一个遗留系统,正在被迁移到AWS,因此它将需要更改几十个存储的特效。然而,在进一步调查后,我发现了这个问题,结果发现PHP与它无关。事实证明,新数据库的CONCAT_NULL_YIELDS_NULL默认为按预期开启,但随后该属性被AWS覆盖并关闭。 – Biondo