原本認為沒有限制,因為PHP手冊上的類型部分沒有提到這個問題。但實際應用中卻發現了這個限制問題:
從一個textarea傳遞文本內容至mssql的text字段,這個過程完全正常,但當讀取的時候,發現只顯示開頭的兩千來個字。
經過在網上的搜索,了解到是php.ini中有這樣的設置:
; Valid range 0 - 2147483647. Default = 4096.
;mssql.textlimit = 4096
; Valid range 0 - 2147483647. Default = 4096.
;mssql.textsize = 4096
可見php確實對變量大小沒有限制(2G的限制目前確實可以視為不存在),只是在默認的配置下被限制到了4096字節,亦即2048個漢字。
於是在代碼中加入了如下兩行以解決問題:
ini_set("mssql.textsize",200000);
ini_set("mssql.textlimit",200000);
(十萬個漢字想來也夠用了吧。)