php读取mssql的ntext字段反回值为空

果是表里面没有ntext字段,可以用以下代码:

 代码如下 复制代码

<?php
// Connect to MSSQL
$link = mssql_connect('KALLESPCSQLEXPRESS', 'sa', 'dsc');

if(!$link || !mssql_select_db('php', $link))
{
 die('Unable to connect or select database!');
}

// Do a simple query, select the version of
// MSSQL and print it.
$version = mssql_query('SELECT @@VERSION');
$row = mssql_fetch_array($version);

echo $row[0];

// Clean up
mssql_free_result($version);
?>

如果表里面有ntext军字段,且不好修改回text字段, 可以如下:

1.修改 php.ini

打开php.ini

找到:

 

 代码如下 复制代码

;mssql.textlimit = 4096
改为

mssql.textlimit = 2147483647
找到:

;mssql.textsize = 4096
改为

mssql.textsize = 2147483647

2.可以使用修改字段,由于sql server中,ntext和nvarchar字段是用unicode编码存储内容的,
因此php通过mssql扩展读取带ntext和nvarchar类型字段的时候会抱错。

如果 title 字段类型为 nvarchar,content 字段类型为 ntext ,那么下面的sql语句会报错:

错的:

 

 代码如下 复制代码

select title,content from article
正确的:

select convert(varchar(255), title) as title,
  convert(text, content) as content
 from article

3.如果你是虚拟主机,可以使用adodb 组件来读取。如果你主机不支持,目前笔者也没办法了。

 

 代码如下 复制代码
<?php
include("adodb/adodb.inc.php"); //包含adodb类库文件
$conn=NewADOConnection('odbc_mssql'); //连接SQL Server数据库
$conn->Connect("Driver={SQL Server};Server=localhost;
 Database=mydb;",'username','password');
?>
时间: 2024-10-12 07:53:28

php读取mssql的ntext字段反回值为空的相关文章

php与mssql的ntext字段错误总结

在网上找了很久,都是说 php 读 ntext 出错的,但没发现我的页面出错,就郁闷了.后来才查到是说 php 默认最大只能读 4K 的内容,原来是我的内容超过了 4K.修改方法如 下: 1.把 php 升级到 php5 .     还好,我的已经是 php5 了. 2.调整 php.ini 的参数,把 php 默认最大只能读 4K 改大一点.     ; Valid range 0 - 2147483647.  Default = 4096.     ;mssql.textlimit = 40

mysql中CONCAT值为空的问题解决办法

天在做opencart开发的时候,需要对用户表中用户的电话号码和区号连接起来,于是使用了concat方法,  代码如下 复制代码 SELECT CONCAT(isdcode,telephone) FROM gb_customer 竟然发现很多NULL列,telephone明明是有值的,于是查询了相关concat方法, 解释如下  代码如下 复制代码 mysql CONCAT(str1,str2,-)   返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL.或许有一

SQL Server中text或ntext 字段内容替换方法

  update 表名 set text类型字段名=replace(convert(varchar(8000),text类型字段名),'要替换的字符','替换成的值') 1.update ntext: (1)varchar和nvarchar类型是支持replace,所以如果你的text/ntext不超过8000/4000可以先转换成前面两种类型再使用replace. update 表名 set text类型字段名=replace(convert(varchar(8000),text类型字段名),

asp.net 中 如何将数据库中某一个字段的值显示在8行8列的表格中,点击某个表格的值时还能编辑

问题描述 asp.net 中 如何将数据库中某一个字段的值显示在8行8列的表格中,点击某个表格的值时还能编辑 asp.net 中 如何将数据库中某一个字段的值显示在8行8列的表格中,点击某个表格的值时还能编辑 解决方案 你是要某个字段显示在8行8列的表格中还是说读取数据出来之后是个8行8列的表格,然后显示进去? 可以直接用GRIDVIEW,或者直接用html拼接,至于修改,gridview有自带的commond方法 解决方案二: 数据库有64条记录,把64个记录中的score字段的值全部显示在表

sql-SQL读取某行某字段的问题.

问题描述 SQL读取某行某字段的问题. 在ORACLE SQL中,我想实现以下功能: 在某个指定行中,寻找某个特定字段的值,并输出拥有所有次特定字段行. 例如: 一个表有以下属性:雇员姓名,雇员老板 我想查找'王五'的老板(这里假设是张三),并输出所有老板的名字为张三的雇员. 解决方案 子查询,先用查询得到老板名称,然后再做为in的判断. select xx from t where 老板 in (select 老板 from t where 员工 = yyy) 解决方案二: 你可以直接把whe

如何解决ASP.NET新增时多字段取值的问题_实用技巧

ASP.NET 开发人员在卡发时经常会碰到一个情况,就是新增的页面中字段太多,在点击保存的时候需要一个一个的赋值实体或者构建SQL语句去保存.这样不仅浪费体力还需要占用大量的文本行控件去写代码.经过构思是否可以使用一种更方便的办法去解决呢?提高代码的内聚性.  1.思路  我们知道一般新增页面最多的就是一大堆文本框让用户输入内容,然后点击保存按钮进行提交将数据持久化到数据库. 在点击提交的时候传统方式就是一个一个文本框的读取赋值.  HTML代码如下: <asp:TextBox ID="T

MSSQL 如何删除字段的所有约束和索引

原文MSSQL 如何删除字段的所有约束和索引 代码如下: [sql] view plaincopy ----------------------------------------------------------   --  mp_DropColConstraint   --  功能:删除某个表的某列的所有约束   --  入口:   --      @TableName NVARCHAR(128)    -- 表名   --      @ColumnName NVARCHAR(128)  

替换MSSQL数据库text字段恶意脚本

删除MSSQL数据库text字段的替换处理示例--全表替换,看到有人提问,所以整理了一个好久以前的处理方法,以供大家参考 方法很简单:text字段不能使用Replace,所以使用patindex -select * from Product where P_Intro like '%<script src="http://my.stsw518.cn/a002/1.js" src="http://my.stsw518.cn/a002/1.js"></

Ntext字段拆分处理

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_split]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[p_split]GO /*--Ntext字段拆分处理  按指定的分隔符,将 ntext 字段拆分成多条记录 注意:处理过程固定以名为id的int型字段为主键 如果不满足这个条件,则要对应的修改存储过程 --邹