原因: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格式才是正确格式,试一下就知道了)
当PHP从MSSQL数据库中读取varchar类型超过255字节的字符串时,会遇到显示不全的问题。解决方法包括在查询时将字段转换为text类型,以及调整PHP配置文件PHP.INI中mssql.textlimit和mssql.textsize的值至8000。对于中文乱码,可以通过iconv函数转换字符编码。确保正确显示所有查询结果。
381

被折叠的 条评论
为什么被折叠?



