php讀取mssql中的text欄位不完整的問題
修改php.ini ,去掉前面的;,將那個4096改大即可。
[MSSQL]
mssql.textlimit = 4096
PHP在查詢MSSQL資料庫的text欄位的內容時,如果內容長度過長,則會有部分內容被擷取。這也許並不是我們想要的結果,解決辦法:
1、修改php.ini檔案
開啟php.ini檔案,查詢mssql.textlimit,可以找到如下內容:
;Valid range 0 - 2147483647. Default = 4096.
;mssql.textlimit = 4096
; Valid range 0 - 2147483647. Default = 4096.
;mssql.textsize = 4096
把mssql.textlimit = 4096和mssql.textsize = 4096兩行前面的分號去掉,將數值改大,重新啟動服務。
2、通過ini_set進行設定
上面說的是有伺服器管理許可權的情況下的解決辦法。也許有些時候我們並沒有伺服器管理許可權,那隻能在程式上進行設定了。
@ini_set( mssql.textsize , 200000) ;
加上這句即可以完成設定。
3、通過執行SQL語句來解決
如:mssql_query ( 'SET TEXTSIZE 65536' , $myConn );
其中,$myConn是資料連線標識。這是比較原始的寫法,要表達的意思就是執行'SET TEXTSIZE 65536'這樣一條SQL語句。
注意:如果欄位型別是ntext,有時會出現亂碼現象,看上去有點像是內容被不正常擷取。這種情況可以在SQL語句中將內容轉換成text型別,寫法如下:
select id,convert(text,content) as content from news