在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字节。

              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中执行SELECT查询之前执行SET   TEXTSIZE:

 mssql_query("SET   TEXTSIZE   65536"); 

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

MSSQL数据库中Text类型字段在PHP中被截断之解 (转)的更多相关文章

  1. SQL Server中TEXT类型字段值在数据库中追加字符串方法

    在数据上我们往往会遇到ntext大文本类型,这种类型如果和 nvarchar类型相加会出现问题,所以有一中方法可以解决这种问题. 使用的sql   函数: TEXTPTR:返回要更新的 text.nt ...

  2. Sql 中text类型字段判断是否为空

    用 len关键字,字段=''会报错:数据类型 text 和 varchar 在 equal to 运算符中不兼容. 正确方法: 1. 字段 is null 2. datalength(字段)=0 注: ...

  3. sqlserver text类型字段错误 net.sourceforge.jtds.jdbc.ClobImpl@66fa192的解决方法

    1. SqlServer数据库中text/ntext字段,在用jtds1.2驱动时,会出现用getString()取不到值的问题,toString()也不行. 昨天查了下帮助可以通过简单的配置解决.即 ...

  4. ElasticSearch 6.2 Mapping参数说明及text类型字段聚合查询配置

    背景: 由于本人使用的是6.0以上的版本es,在使用发现很多中文博客对于mapping参数的说明已过时.ES6.0以后有很多参数变化. 现我根据官网总结mapping最新的参数,希望能对大家有用处. ...

  5. 使用like查询text类型字段

    使用like查询text类型字段 public bool Exists(GetReadType GRT, ClientMessageGetRead TypeID, string MessageID, ...

  6. C# WebAPI中DateTime类型字段在使用微软自带的方法转json格式后默认含T的解决办法

    原文:C# WebAPI中DateTime类型字段在使用微软自带的方法转json格式后默认含T的解决办法 本人新手,在.Net中写WebAPI的时候,当接口返回的json数据含有日期时间类型的字段时, ...

  7. .Net处理Oracle中Clob类型字段总结

    最近在做项目中用到Clob这个字段,Clob是存储无限长字符的Oracle字段,用的时候网上找资料找了好久,内容不是很多,大部分都不能用,当然也有可以用的,测试了不同版本,整理了一下,给大家在做项目的 ...

  8. 解决Entity Framework中DateTime类型字段异常

    从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值 具体的错误原因是:C#中的DateTime类型比SqlServer中的datetime范围大.SqlServe ...

  9. ORACLE中date类型字段的处理

    (1)在英文版本的ORACLE中默认日期格式为'DD-MON-YY',例如'01-JAN-98' 在汉化的中文版本中ORACLE默认日期格式为'日-月-年',例如'21-8月-2003'或'21-8月 ...

随机推荐

  1. Oracle学习线路

    出自huyangg的博客,地址是:oracle学习路线图 1.sql.pl/sql(网上有很多的视频,可以做一个简单的入手,然后看几本书,多做实验)    作为oracle的基本功,需要大家对sql和 ...

  2. windows无法停用“Android Composite Interface”设备的解决方法

    遇到这个问题时,解决方法如下: 打开设备管理器 -> 进程 -> 找到 adb.exe -> 右击选择结束进程 -> 然后重新弹出Android设备

  3. 伸缩盒 Flexible Box(旧)

    box-orient  box-pack    box-align  box-flex   box-flex-group  box-ordinal-group   box-direction  box ...

  4. 用.net访问电子枢纽信用中心的数据查询服务

    概要说明 电子枢纽全称国家交通运输物流公共信息平台,主要提供物流及生产企业进行物流相关数据交换的标准和API,详细介绍可参考其官网www.logink.org,本文假定阅读者对该平台已有了解,并已成功 ...

  5. mysql 用命令操作

    本篇文章来源于http://c.biancheng.net/cpp/html/1441.html mysql:连接数据库 mysql命令用户连接数据库. mysql命令格式: mysql -h主机地址 ...

  6. git 查看远程分支、本地分支、创建分支、把分支推到远程repository、删除本地分支

    1 查看远程分支 $ git branch -a * br-2.1.2.2 master remotes/origin/HEAD -> origin/master remotes/origin/ ...

  7. Daily Scrum 12.18

    对于老师课上所问为什么燃尽图(图如下)的完成小时数增加的问题,我们的理解是完成小时数是完成迭代2所需要的总共时间,当加入任务的时候,也就是蓝色部分增长的时候,完成小时数就会增加. 今日大家都在做编译实 ...

  8. SQL查询符合条件的记录的总数

    1. select count(*) from table;    //统计元组个数 2. select count(列名) from table;  //统计一列中值的个数 3. select co ...

  9. Apache 网站301重定向

    1. Apache模块 开启rewrite 2..htaccess文件中 <IfModule mod_rewrite.c> Options +FollowSymlinks RewriteE ...

  10. freeCodeCamp:Chunky Monkey

    猴子吃香蕉可是掰成好几段来吃哦! 把一个数组arr按照指定的数组大小size分割成若干个数组块. 例如:chunk([1,2,3,4],2)=[[1,2],[3,4]]; chunk([1,2,3,4 ...