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.ini中文版
Oct 09 PHP
浅谈php中mysql与mysqli的区别分析
Jun 10 PHP
PHP实现读取一个1G的文件大小
Aug 24 PHP
destoon各类调用汇总
Jun 20 PHP
php缓冲输出实例分析
Jan 05 PHP
php获取远程文件的内容和大小
Nov 03 PHP
浅谈PHP检查数组中是否存在某个值 in_array 函数
Jun 13 PHP
PHP-FPM运行状态的实时查看及监控详解
Nov 18 PHP
PHP批量修改文件名称的方法分析
Feb 27 PHP
PHP实现活动人选抽奖功能
Apr 19 PHP
php基于 swoole 实现的异步处理任务功能示例
Aug 13 PHP
详解Laravel服务容器的绑定与解析
Nov 05 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
PHP模板引擎SMARTY
2006/10/09 PHP
连接到txt文本的超链接,不直接打开而是点击后下载的处理方法
2009/07/01 PHP
php获取301跳转URL简单实例
2013/12/16 PHP
PHP中iconv函数转码时截断字符问题的解决方法
2015/01/21 PHP
PHP rsa加密解密使用方法
2015/04/27 PHP
PHP+Apache环境中如何隐藏Apache版本
2017/11/24 PHP
关于__defineGetter__ 和__defineSetter__的说明
2007/05/12 Javascript
jQuery 剧场版 你必须知道的javascript
2009/05/27 Javascript
jQuery中offset()方法用法实例
2015/01/16 Javascript
Javascript的表单与验证-非空验证
2016/03/18 Javascript
Web前端开发工具——bower依赖包管理工具
2016/03/29 Javascript
JavaScript代码实现左右上下自动晃动自动移动
2016/04/08 Javascript
Backbone.js框架中Model与Collection的使用实例
2016/05/07 Javascript
js事件源window.event.srcElement兼容性写法(详解)
2016/11/25 Javascript
Vue组件实例间的直接访问实现代码
2017/08/20 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
2017/10/30 Javascript
webstorm和.vue中es6语法报错的解决方法
2018/05/08 Javascript
原生JS实现动态添加新元素、删除元素方法
2019/05/05 Javascript
微信小程序 textarea 层级过高问题简单解决方案
2019/10/14 Javascript
Python编程之Re模块下的函数介绍
2017/10/28 Python
10 行Python 代码实现 AI 目标检测技术【推荐】
2019/06/14 Python
django创建超级用户过程解析
2019/09/18 Python
pytorch使用 to 进行类型转换方式
2020/01/08 Python
python 两个一样的字符串用==结果为false问题的解决
2020/03/12 Python
Python 找出英文单词列表(list)中最长单词链
2020/12/14 Python
Python用户自定义异常的实现
2020/12/25 Python
简单总结CSS3中视窗单位Viewport的常见用法
2016/02/04 HTML / CSS
惠而浦美国官网:Whirlpool.com
2021/01/19 全球购物
什么是重载?CTS、CLS和CLR分别做何解释
2012/05/06 面试题
什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
2012/05/23 面试题
应届生船舶驾驶求职信
2013/10/19 职场文书
授权委托书范本(单位)
2014/09/28 职场文书
2015年保送生自荐信
2015/03/24 职场文书
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python
试了下Golang实现try catch的方法
2021/07/01 Golang
JavaScript高级程序设计之基本引用类型
2021/11/17 Javascript