PHP中查询SQL Server或Sybase时TEXT字段被截断的解决方法


Posted in PHP onMarch 10, 2009

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");

PHP 相关文章推荐
用PHP ob_start()控制浏览器cache、生成html实现代码
Feb 16 PHP
如何使用Strace调试工具
Jun 03 PHP
ThinkPHP之A方法实例讲解
Jun 20 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
Nov 08 PHP
PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例
Aug 17 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
Nov 16 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
Feb 04 PHP
使用PHP json_decode可能遇到的坑与解决方法
Aug 03 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
Sep 29 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 PHP
php成功操作redis cluster集群的实例教程
Jan 13 PHP
PHP递归算法的简单实例
Feb 28 PHP
php mssql 日期出现中文字符的解决方法
Mar 10 #PHP
linux php mysql数据库备份实现代码
Mar 10 #PHP
php生成SessionID和图片校验码的思路和实现代码
Mar 10 #PHP
php 数组的创建、调用和更新实现代码
Mar 09 #PHP
在JavaScript中调用php程序
Mar 09 #PHP
隐性调用php程序的方法
Mar 09 #PHP
php动态生成JavaScript代码
Mar 09 #PHP
You might like
smarty静态实验表明,网络上是错的~呵呵
2006/11/25 PHP
Cannot modify header information错误解决方法
2008/10/08 PHP
PHP闭包(Closure)使用详解
2013/05/02 PHP
php bootstrap实现简单登录
2016/03/08 PHP
PHP的Trait机制原理与用法分析
2019/10/18 PHP
Aster vs Newbee BO3 第三场2.18
2021/03/10 DOTA
使用jquery制作弹出框效果
2015/04/03 Javascript
jQuery实现手机号码输入提示功能实例
2015/04/30 Javascript
jQuery蓝色风格滑动导航栏代码分享
2015/08/19 Javascript
BootStrap的JS插件之轮播效果案例详解
2016/05/16 Javascript
微信小程序 支付功能(前端)的实现
2017/05/24 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
vue.js实现带日期星期的数字时钟功能示例
2018/08/28 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
Element input树型下拉框的实现代码
2018/12/21 Javascript
如何手写简易的 Vue Router
2020/10/10 Javascript
[05:36]DOTA2 2015国际邀请赛中国区预选赛第四日TOP10
2015/05/29 DOTA
[06:43]2018DOTA2国际邀请赛寻真——VGJ.Thunder
2018/08/11 DOTA
常用python数据类型转换函数总结
2014/03/11 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
Python用input输入列表的实例代码
2020/02/07 Python
django中嵌套的try-except实例
2020/05/21 Python
HTML5的download属性详细介绍和使用实例
2014/04/23 HTML / CSS
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
新加坡一家在线男士皮具品牌:Faire Leather Co.
2019/12/01 全球购物
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
EJB timer的种类
2014/10/28 面试题
应届生个人求职信模板
2013/11/26 职场文书
庆七一活动总结
2014/08/27 职场文书
安全在我心中演讲稿
2014/09/01 职场文书
中学生爱国演讲稿
2014/09/05 职场文书
公司授权委托书
2014/10/17 职场文书
Redis安装启动及常见数据类型
2021/04/14 Redis
AudioContext 实现音频可视化(web技术分享)
2022/02/24 Javascript
Apache SeaTunnel实现 非CDC数据抽取
2022/05/20 Servers