原因:PHP针对varchar类型的字符串最多只能显示255字节,超过的部分不能被读取显示
解决办法:在MSSQL查询的时候把字符串转换为text格式:
select cast(字段 as text) from table;
这样就可以显示将长度小于4096的字符串显示完。
但是MSSQL中最长字符串可以达到8000,超过4096的部分仍然显示不出来。
解决办法:
找到并打开PHP.INI文件(在PHP安装路径,BIN文件夹内)
搜索[MSSQL]
找到
Valid range 0 - 2147483647. Default = 4096.
mssql.textlimit = 4096
Valid range 0 - 2147483647. Default = 4096.
mssql.textsize = 4096
将PHP对TEXT类型的限制大小改为8000
Valid range 0 - 2147483647. Default = 8000.
mssql.textlimit = 8000
Valid range 0 - 2147483647. Default = 8000.
mssql.textsize = 8000
这样就能够显示所有的MSSQL查询结果。
PS:中文参数显示为乱码,多半是格式的原因,可以将字符串转换格式
$name = iconv("gbk","utf-8",$name);
将参数转换成UTF-8格式(也可能gbk格式才是正确格式,试一下就知道了)