修改php.ini改下面参数:
mssql.textlimit = 40960
mssql.textsize = 40960

解决方案 »

  1.   

    php.ini中
    mssql.textlimit
    mssql.textsize
    两个参数的值改的大一点
      

  2.   

    还是不行,怎么办呢,急呀
    <?php
    session_start();
    $hostname = "crm\insintek_hean"; //MSSQL Server$dbuser = "kkk"; //用户名$dbpasswd = "1"; //密码//连接数据库$id = mssql_connect($hostname,$dbuser,$dbpasswd) or die("无法连接数据库服务器!");mssql_select_db("ecorg");$query="select * from business";        //查询语句
    $sql=mssql_query($query);
    while ($r=mssql_fetch_array($sql)){
    print $r["content"];
    $messageid=$r["messageid"]
    }
    以上是全部源代码phpinfo 得的值
    mssql.textlimit 9000000 9000000 
    mssql.textsize 900000 900000 
      

  3.   

    http://expert.csdn.net/Expert/topic/1884/1884499.xml?temp=.3051416
    你是否是读出大量数据!!!???
    不懂在问!!
      

  4.   

    to shuiaaa(情海水) 
    你是怎么解决的呀,我急呀
      

  5.   

    试试把content的类型改为text 16
      

  6.   

    to xxu(焕兄) 
    我读的是mssql的数据呀
    数据类型是 nvarchar
      

  7.   

    你的content里面是不是有特殊字符??比如HTML的<> ? / 等等......
      

  8.   

    mssql记录的格式,以一段固定长度的连续的字符串存为一块(大概为8K),但块与块并不是连续的。nvarchar,varchar,不能跨“块”存取。但是text类型就可以了。
    所以我建议你把类型改为text.
      

  9.   

    上php.net的bug report中看到这个问题,里面的人的解释是:The DB Library used for the MSSQL extension does not support char and
    varchar columns with more than 256 characters.char and varchar columns was extended from 256 to 8000 in SQL Server 7.0
    but the DB library from Microsoft was not updated.所以,这个问题是存在的,但不是php的bug,是微软不更新它的c-library的问题。有一个很简单的解决方案。在所有的大于256的varchar或char或nvarchar之类的,用cast将其转为text类型就行了。给出一个范例如下,其中theValue字段是varchar(3000):
    <?
    $conn = mssql_connect("localhost","sa","9527") or die("cannot connect to db");
    $query = "select cast (theValue as text) as theValue from MyTest.dbo.table1";
    $result = mssql_query($query,$conn) or die("cannot exec sql:$query");
    $array = mssql_fetch_array($result);
    echo $array['theValue'];
    ?>
      

  10.   

    很烦的一件事是,居然在php5.0中这个问题还存在,微软的那个c-library还未更新,激死。