小弟我在server2000数据库article表单中有一个类型是‘ntext’的字段,字段名是context。此字段是用来存放文章内容的,我用php读取此字段内容用语句:$result=mssql_query("select convert(text,content) as content from article where articleid='$articleid' "); 此语句可以正确执行,但问题是有的文章内容很多,用‘text’只能读取大约5000个汉字,剩下的就无法显示,我不知道用什么办法可以把所有的内容都读取出来。请各位大哥帮帮忙给点意见或建议,小弟我谢谢了。(数据库是固定不能修改的,只能用PHP代码来解决。)

解决方案 »

  1.   

    我用下面代码读取context字段:while ( $row = mssql_fetch_row($result))
    {
      echo  $row[0];
    }我觉得是变量$row不能存储那么长的字符,但我不懂怎么设定变量存储字符的长度?
      

  2.   

    终于找到问题所在,sql server 2000中'text'类型只能存储4096个字符,所以'ntext'装换成‘text’类型后,超过4096字符后面的字符全部都丢失。大家有什么办法能够全部读取完'ntext'类型字段的所有内容?
      

  3.   

    问题解决,方法如下:
    PHP在操作SQL Server数据库时,只能发送4096B的字符,如果按照这个设置,在发布一些内容比较长的信息时,会导致信息不全,因此,需要修改php.ini中相关的设置:
    用任意文本编辑器打开php.ini,
    找到
    ;mssql.textlimit = 4096
    改为
    mssql.textlimit = 2147483647找到
    ;mssql.textsize = 4096
    改为
    mssql.textsize = 2147483647保存后,重新启动WWW服务,该设置即可生效.