PHP中查询SQL Server或Sybase时TEXT字段被截断的解决方法
网络编程 发布日期:2024/10/24 浏览次数:1
正在浏览:PHP中查询SQL Server或Sybase时TEXT字段被截断的解决方法
Author: Wenlong Wu
一、针对MS SQL SERVER数据库
有两种解决方案,如下:
修改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字节,其实-1也可以的,查看一下PHP源代码即可发现-1表示无限制 :)
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, "SET TEXTSIZE %li", MS_SQL_G(textsize));
dbcmd(mssql.link, buffer);
dbsqlexec(mssql.link);
dbresults(mssql.link);
}
在PHP中查询之前执行SET TEXTSIZE 合适的大小: 只需在SELECT之前执行
mssql_query("SET TEXTSIZE 65536");
从上面PHP源代码中可看到其实也是执行SET TEXTSIZE的 :)
二、针对Sybase数据库
由于该扩展在php.ini没有像SQL SERVER那样的选项可配置,所以只有采用上面的第二种方法,即:
在SELECT之前执行
sybase_query("SET TEXTSIZE 65536");
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。