MSSQL数据库中Text类型字段在PHP中被截断之解

WBOY
Lepaskan: 2016-07-29 09:13:58
asal
1166 orang telah melayarinya

在PHP中使用了MSSQL数据库,恰巧数据库中又使用了Text类型字段,于是问题产生了。每次从数据库中查询得到的数据总是被莫名的截断,一开始是以为我使用的PHP框架中对字符串的长度有所限制,后来发现这是个较愚蠢的想法,因为在提交数据时可以将字符串内容全部的提交到数据库中,只是读取时发生此现象,于是上网搜寻是否有类似的问题。运气还挺不错,第一次搜索就找到了解决的办法,遂决定将其转贴在我的Blog中,供自己和广大PHP爱好者的不时之需。
有两种解决方案,如下:
一、修改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字节。

MSSQL数据库中Text类型字段在PHP中被截断之解if(MS_SQL_G(textlimit)!=-1){
MSSQL数据库中Text类型字段在PHP中被截断之解
sprintf(buffer,"%li",MS_SQL_G(textlimit));
MSSQL数据库中Text类型字段在PHP中被截断之解
if(DBSETOPT(mssql.link,DBTEXTLIMIT,buffer)==FAIL){
MSSQL数据库中Text类型字段在PHP中被截断之解efree(hashed_details);
MSSQL数据库中Text类型字段在PHP中被截断之解dbfreelogin(mssql
.login);
MSSQL数据库中Text类型字段在PHP中被截断之解RETURN_FALSE;
MSSQL数据库中Text类型字段在PHP中被截断之解}
MSSQL数据库中Text类型字段在PHP中被截断之解}
MSSQL数据库中Text类型字段在PHP中被截断之解
if(MS_SQL_G(textsize)!=-1){
MSSQL数据库中Text类型字段在PHP中被截断之解
sprintf(buffer,"SETTEXTSIZE%li",MS_SQL_G(textsize));
MSSQL数据库中Text类型字段在PHP中被截断之解dbcmd(mssql
.link,buffer);
MSSQL数据库中Text类型字段在PHP中被截断之解dbsqlexec(mssql
.link);
MSSQL数据库中Text类型字段在PHP中被截断之解dbresults(mssql
.link);
MSSQL数据库中Text类型字段在PHP中被截断之解}

二、在PHP中执行SELECT查询之前执行SET TEXTSIZE:

MSSQL数据库中Text类型字段在PHP中被截断之解mssql_query("SETTEXTSIZE65536");

从上面PHP源代码中可看到其实也是执行SET TEXTSIZE的。

如果以上不起作用,可以尝试在查询语句中使用CAST函数。

以上就介绍了MSSQL数据库中Text类型字段在PHP中被截断之解,包括了PHP框架方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan