php读取mssql中的text字段不完整的问题
2012-1-30 18:36 Monday  

分类: PHP 标签: mssql 4096 内容 textsize textlimit 评论(45) 浏览(18748)

convert(text,content)

修改php.ini ,去掉前面的;,将那个4096改大即可。
[MSSQL]
mssql.textlimit   =   4096

//以下度娘

PHP在查询MSSQL数据库的text字段的内容时,如果内容长度过长,则会有部分内容被截取。这也许并不是我们想要的结果,解决办法:

1、修改php.ini文件

打开php.ini文件,查找mssql.textlimit,可以找到如下内容:

;Valid range 0 - 2147483647. Default = 4096.
;mssql.textlimit = 4096 

; Valid range 0 - 2147483647. Default = 4096.
;mssql.textsize = 4096
 

把mssql.textlimit = 4096和mssql.textsize = 4096两行前面的分号去掉,将数值改大,重新启动服务。

 2、通过ini_set进行设置

上面说的是有服务器管理权限的情况下的解决办法。也许有些时候我们并没有服务器管理权限,那只能在程序上进行设置了。

@ini_set( mssql.textsize , 200000) ;

加上这句即可以完成设置。

 3、通过执行SQL语句来解决

如:mssql_query ( 'SET TEXTSIZE 65536' , $myConn );

其中,$myConn是数据连接标识。这是比较原始的写法,要表达的意思就是执行'SET TEXTSIZE 65536'这样一条SQL语句。

 

注意:如果字段类型是ntext,有时会出现乱码现象,看上去有点像是内容被不正常截取。这种情况可以在SQL语句中将内容转换成text类型,写法如下:

select id,convert(text,content) as content from news...

+1 7

留下你的看法: