SQL Server, PHP 截斷Text 字段

PHP 可以使用很多數據庫系統, 最經常用的是MySQL.  然而, SQL Server 是一個非常強大的,可以替換MySQL 的數據庫, 很值得我們在大的項目中考慮使用。


然而, 在PHP中 mssql  的擴展設置很容易被忽略,所以會導致一些奇怪的行爲。 我在最近的一個項目中遇到這樣一個不常見的問題, 每次從Text 類型的列中獲取數據,都會被截斷爲大約4000個字符


如果你也正經歷這樣類似的問題, 這裏有一些方法可以解決它。


你需要通過PHP增加text 類型列從數據庫的最大返回值。 你可以用這樣一個簡單的sql 查詢  

SET TEXTSIZE 2147483647
你可以運行下面的php 腳本(最好是在建立連接後執行)

mssql_query("SET TEXTSIZE 2147483647");

一個比較好的解決這個問題方式是在php.ini 中修改 “textlimit” 和 “textsize” , 像這樣

mssql.textlimit = 2147483647
mssql.textsize = 2147483647

在上面的例子中, 我用了數值 "2147483647" (字節數), 你是沒有必要設置這麼高的, 然而這樣做也是沒有傷害的。


爲什麼這個問題不會發生在ASP ?  當我們使用Microsoft's SQL Server ODBC driver and OLE DB Provider 時, 當連接建立成功後,textsize 自動被設置成了 2147483647。


原文: https://www.addedbytes.com/blog/sql-server-php-truncating-text 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章