代码之家  ›  专栏  ›  技术社区  ›  Derek Adair

MS SQL/PHP截断结果文本

  •  3
  • Derek Adair  · 技术社区  · 15 年前

    我有一个 SQL语言 正在选择字段的查询,由于某种原因,它将以257个字符的长度切断文本。

    使用mssql和php检索结果是否有某种默认的截止值?

    我真的不知道为什么会这样。任何指导都将不胜感激

    字段类型为“char”

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

    可能是 mssql.textlimit mssql.textsize 价值?

    3 回复  |  直到 12 年前
        1
  •  1
  •   Derek Adair    15 年前

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

    出于某种原因,将字段转换为文本非常有效。

    SELECT CONVERT(TEXT,fld_name) FROM TABLE_NAME

        2
  •  1
  •   David Sickmiller Patrick Roberts    12 年前

    问题很可能是您使用的是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

        3
  •  -1
  •   Rupert Madden-Abbott    15 年前

    mysql manual :

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

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

    您需要使用char的原因是什么?尝试使用文本、blob或varchar。

    推荐文章