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