MS SQL / PHP截断结果文本

时间:2010-06-02 16:41:40

标签: php sql

我有一个 MS SQL 查询正在选择一个字段,但由于某种原因它正在切断257个字符的文本。

使用MSSQL和PHP检索结果是否存在某种默认切断?

对于为什么会这样,我真的很无能为力。非常感谢任何指导

字段类型为“char”

以下是来自phpinfo()的MS SQL配置的屏幕截图 alt text http://www.aaacoloautosource.com/mssql_config.png

可能是mssql.textlimitmssql.textsize值吗?

3 个答案:

答案 0 :(得分:1)

不知何故,数据类型是“char”,显然限制为255个字符。但是DB存储的字符数超过255个。

由于某种原因,将字段转换为TEXT非常有效。

SELECT CONVERT(TEXT,fld_name) FROM TABLE_NAME

答案 1 :(得分:1)

问题很可能是您使用的是TDS协议版本4.2。您应该通过在/etc/freetds.conf中设置它来升级到至少7.0:

tds version = 7.0

版本4.2的限制是:

  • 仅限ASCII
  • 不支持RPC。
  • 不支持BCP。
  • varchar字段限制为255个字符。如果您的表定义了较长的字段,则会将其截断。
  • 不支持动态查询(也称为预准备语句)。

有关详细信息,请参阅http://freetds.schemamania.org/userguide/choosingtdsprotocol.htm

答案 2 :(得分:-1)

来自mysql manual

  

CHAR列的长度固定为创建表时声明的长度。长度可以是0到255之间的任何值。

在我的MYSQL版本中,根据上述规范,我无法将char字段设置为超过255个字符。

你有什么理由需要使用char吗?请尝试使用text或blob或varchar。