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 和 XML: 使用expat函数(二)
Oct 09 PHP
一个PHP数组应该有多大的分析
Jul 30 PHP
php 字符串函数收集
Mar 29 PHP
apache+php完美解决301重定向的两种方法
Jun 08 PHP
遍历指定目录下的所有目录和文件的php代码
Nov 27 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
Aug 22 PHP
PHP数组循环操作详细介绍 附实例代码
Feb 03 PHP
排序算法之PHP版快速排序、冒泡排序
Apr 09 PHP
PHP弹出对话框技巧详细解读
Sep 26 PHP
php验证手机号码
Nov 11 PHP
PHP针对字符串开头和结尾的判断方法
Jul 11 PHP
PHP laravel中的多对多关系实例详解
Jun 07 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扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
解析PHP可变函数的经典用法
2013/06/20 PHP
jquery easyui combox一些实用的小方法
2013/12/25 Javascript
jquery默认校验规则整理
2014/03/24 Javascript
Node.js + Redis Sorted Set实现任务队列
2016/09/19 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
基于nodejs实现微信支付功能
2017/12/20 NodeJs
解决axios发送post请求返回400状态码的问题
2018/08/11 Javascript
使用canvas实现一个vue弹幕组件功能
2018/11/30 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
2020/04/11 Javascript
VUE 实现element upload上传图片到阿里云
2020/08/12 Javascript
OpenLayers3加载常用控件使用方法详解
2020/09/25 Javascript
Vue实现图书管理案例
2021/01/20 Vue.js
[01:09]DOTA2次级职业联赛 - ishow.HMM战队宣传片
2014/12/01 DOTA
[02:17]DOTA2亚洲邀请赛 RAVE战队出场宣传片
2015/02/07 DOTA
利用Tkinter和matplotlib两种方式画饼状图的实例
2017/11/06 Python
python+matplotlib演示电偶极子实例代码
2018/01/12 Python
Python解决抛小球问题 求小球下落经历的距离之和示例
2018/02/01 Python
Pandas中把dataframe转成array的方法
2018/04/13 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
python添加模块搜索路径和包的导入方法
2019/01/19 Python
pandas取出重复数据的方法
2019/07/04 Python
tensorflow2.0的函数签名与图结构(推荐)
2020/04/28 Python
深入浅析css3 中display box使用方法
2015/11/25 HTML / CSS
ToysRus日本官网:玩具反斗城
2018/09/08 全球购物
函授毕业生自我鉴定
2013/11/06 职场文书
文明餐桌活动方案
2014/02/11 职场文书
社区食品安全实施方案
2014/03/28 职场文书
亚运会口号
2014/06/20 职场文书
驾驶员安全责任书范本
2014/07/24 职场文书
微信早安问候语
2015/11/10 职场文书
2019年家电促销广告语集锦
2019/10/21 职场文书
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA
国际最新研究在陨石中发现DNA主要成分 或由陨石带来地球
2022/04/29 数码科技