有两种解决方案,如下:
一、修改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函数。
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!