2010-06-02 66 views
3

我有一個MS SQL查詢時選擇的一個字段,它被砍掉由於某種原因,它被切斷文本在257個字符。MS SQL/PHP截斷結果文本

用MSSQL和PHP檢索結果是否存在某種默認截斷?

對於爲什麼會發生這種情況,我老實說無能爲力。任何指導,將不勝感激

字段類型是「字符」

這裏是phpinfo() alt text http://www.aaacoloautosource.com/mssql_config.png

我的MS SQL配置的屏幕截圖難道是mssql.textlimitmssql.textsize價值?

+0

什麼樣的領域是什麼? – 2010-06-02 16:42:39

+0

字段類型是「char」 – 2010-06-02 16:48:53

+0

char字段有多大?它是char(255)還是什麼?數字257可疑接近256 == 2^8 – barrycarter 2010-06-02 16:59:49

回答

1

不知怎的,數據類型是「char」,顯然它限制爲255個字符。但數據庫存儲超過255個字符。

將該字段轉換爲TEXT可以完美地出於某種原因。

SELECT CONVERT(TEXT,fld_name) FROM TABLE_NAME

-1

mysql manual

CHAR列的長度是固定的,當你創建表,你聲明的長度。長度可以是0到255之間的任何值。

在我的MYSQL版本中,根據上述規範,我無法將字符字段設置爲長於255個字符。

是否有任何理由需要使用char?嘗試使用文本或blob或varchar代替。

+0

它是MS SQL,而不是MySQL – 2010-06-02 19:49:33

1

的問題是最有可能使用的是TDS協議版本4.2。你應該升級到至少7.0在/etc/freetds.conf設置這樣的:

tds version = 7.0 

的4.2版本的限制爲:不支持

  • ASCII只
  • RPC。
  • BCP不受支持。
  • varchar字段限制爲255個字符。如果你的表定義了更長的字段,它們將被截斷。
  • 不支持動態查詢(也稱爲準備語句)。

有關詳細信息,請參閱http://freetds.schemamania.org/userguide/choosingtdsprotocol.htm