2010-06-02 68 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