有两种解决方案,如下:
一、修改php.ini来实现:
打开php.ini,可看到mssql.textsize,mssql.textlimit两个选项:
; valid range 0 - 2147483647. default = 4096.
;mssql.textlimit = 4096
; valid range 0 - 2147483647. default = 4096.
;mssql.textsize = 4096
可以看到默认配置为4096字节,也就是经常碰到的被截断为4k,将之改为合适的大小,去掉前面的分号,然后保存并重起web服务器即可。
从上面两个选项可看到范围为:0 - 2147483647字节。
if(ms_sql_g(textlimit)!=-1){ sprintf(buffer,%li,ms_sql_g(textlimit)); if(dbsetopt(mssql.link,dbtextlimit,buffer)==fail){ efree(hashed_details); dbfreelogin(mssql.login); return_false; } } if(ms_sql_g(textsize)!=-1){ sprintf(buffer,settextsize%li,ms_sql_g(textsize)); dbcmd(mssql.link,buffer); dbsqlexec(mssql.link); dbresults(mssql.link); }
二、在php中执行select查询之前执行set textsize:
mssql_query(settextsize65536);
从上面php源代码中可看到其实也是执行set textsize的。
如果以上不起作用,可以尝试在查询语句中使用cast函数。
