在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,"SETTEXTSIZE%li",MS_SQL_G(textsize));
dbcmd(mssql.link,buffer);
dbsqlexec(mssql.link);
dbresults(mssql.link);
}
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,"SETTEXTSIZE%li",MS_SQL_G(textsize));
dbcmd(mssql.link,buffer);
dbsqlexec(mssql.link);
dbresults(mssql.link);
}
二、在PHP中执行SELECT查询之前执行SET TEXTSIZE:
mssql_query("SETTEXTSIZE65536");
从上面PHP源代码中可看到其实也是执行SET TEXTSIZE的。
如果以上不起作用,可以尝试在查询语句中使用CAST函数。
相关推荐
当数据库(这里是SQL Server 2000)中的字段名使用中文,并且PHP脚本(可能是UTF-8编码)尝试通过mssql扩展执行查询时,由于编码不匹配,可能会导致中文字段名在SQL语句中被解析为乱码,从而引发错误。PHP的mssql...
MSSQL 中所有字段类型的区别 MSSQL 中的字段类型有很多,了解每种类型的特点和使用场景是非常重要的。本文将详细介绍 MSSQL 中所有字段类型的区别。 一、char、varchar、text 和 nchar、nvarchar、ntext 的区别 ...
本文将详细介绍如何在MSSQL数据库中获取TEXT字段的内容长度,并通过使用DATALENGTH函数提供具体的使用方法。 首先,我们要明白TEXT字段是用来存储可变长度的非Unicode文本数据的,它可以存储非常大的文本块,从1到2...
同时,通过手动备份的数据库被保留在服务器上,还需要通过 FTP 方能下载到本地计算机。 鉴于以上情况,此程序为广大站长提供了完善的 MSSql 数据库备份解决方案。它可以定时地对设置的 MSSql 数据库进行备份,并将...
在IT行业中,数据管理和迁移是常见的任务之一,尤其是在企业级应用中。`XlsToSql` 工具正是一款专为解决此类问题而设计的实用软件,它允许用户将Excel(Xls)文件中的数据高效地导入到Microsoft SQL Server (MSSQL)...
Mssql数据库系统安全加固规范 Mssql数据库系统安全基线规范是为了确保Mssql数据库系统的安全运行,防止各种攻击和非法访问。该规范涵盖了账号管理、认证授权、日志配置、通信协议、设备其他安全要求等多个方面。 ...
针对连接mssql数据库写的一个连接字段保存工具.可选择保存在注册表或系统文件里面.
在IT领域,数据库是存储和管理数据的核心工具,而Microsoft SQL Server(简称MSSQL)是一种广泛使用的商业关系型数据库管理系统。"MSSQL数据库附加工具"是针对MSSQL数据库的一种实用功能,它允许用户将已存在的...
教你暴MSSQL数据库教你暴MSSQL数据库教你暴MSSQL数据库教你暴MSSQL数据库
在“易语言mssql数据库操作实例”中,我们将探讨如何利用易语言来与Microsoft SQL Server(简称mssql)进行交互,执行数据库的基本操作。SQL Server是一个功能强大的关系型数据库管理系统,广泛应用于企业级的数据...
而 Microsoft SQL Server(简称 MSSQL)作为一款强大的关系型数据库管理系统,在企业级应用中有着广泛的应用。因此,了解如何在 PHP 中连接并操作 MSSQL 数据库是非常重要的。 本文将详细介绍如何在 PHP 中配置和...
在IT行业中,数据库管理是至关重要的任务,尤其是在企业级应用中。Microsoft SQL Server(简称MSSQL)作为一款广泛使用的的关系型数据库管理系统,其稳定性和性能得到了广大用户的认可。然而,数据库的管理操作如...
1、结构对比:如开发库和正式库之间的结构和数据同步,此工具可以告诉您哪个表结构有字段的增加减少,或者字段类型的改变,并生成sql进行结构的同步。2、数据对比:如对比两个数据库中的某个表的数据差异,有差异的...
MSSQL数据库在企业级应用中扮演着核心角色,存储和管理大量关键数据。然而,由于各种原因,如硬件故障、软件错误、意外删除或病毒攻击,数据库可能会遇到问题,这时就需要使用特定的工具进行修复。"mssql数据库修复...
在IT行业中,数据库管理是至关重要的任务之一,尤其是在企业级应用中。Microsoft SQL Server(简称MSSQL)作为一款广泛使用的数据库管理系统,提供了丰富的功能来满足各种数据存储和处理需求。本篇将深入探讨如何...
数据库结构和数据对比工具在IT领域中扮演着重要的角色,特别是在数据库管理、迁移和整合过程中。MSSQL,全称Microsoft SQL Server,是微软公司推出的一款关系型数据库管理系统,广泛应用于企业级的数据存储和处理。...
在SQL Server 2000中,数据库维护是至关重要的,因为它涉及到数据库的备份、恢复、性能调整、索引重建和统计更新等多个方面。Mssql数据库维护工具能够自动化这些过程,减少手动操作的时间和出错可能性。 1. **...
在ASP(Active Server Pages)开发中,将Excel数据导入到MSSQL数据库或者从MSSQL数据库导出数据到Excel,是一项常见的需求。这通常涉及到数据迁移、数据分析和报告生成等场景。以下将详细讲解这一过程涉及的关键知识...
2. **简洁布局**:生成的文档以清晰的表格形式展示数据库的表结构,包括字段名、数据类型、长度、默认值等关键信息,使得数据库结构一目了然。 3. **易用性**:用户界面友好,操作流程简单,无需专业的编程知识,只...
在IT行业中,数据库管理是一项至关重要的任务,而MSSQL(Microsoft SQL Server)作为一款广泛使用的商业关系型数据库管理系统,其数据的准确性和一致性是保证业务正常运行的基础。为了更好地管理和维护数据库,...