php 用adodb,php使用ADODB

本文分享了如何使用PHP通过COM对象连接SQLServer 2005,包括创建ADOBC.Connection对象,设置DSN,执行SQL查询,以及处理NULL值的技巧。适合刚接触者和遇到问题的PHP开发者参考。
摘要由CSDN通过智能技术生成

前些日子,一直在网上找php怎么连接sql server2005找了好久,没找到,也在百度知道上问了好久,还是

没人知道呵呵最后让在无意间发现连接sql server2005的办法,还漫好用的.今天发布在网上就想与让大家分享

让与我一样的朋友们不要像我一样苦苦地找.下面就说说怎么与sql server2005连接

其实连接sql server2005很简单的,就是用到php的COM对象.在php手册上也有介绍.

$myDSN="Provider=SQLNCLI.1;Persist Security Info=True;Data Source=$server;User ID=$dbname;Password=$dbpass;Initial Catalog=$database";

$conn=new COM('ADODB.Connection');

$conn->open($myDSN);

就这样一句就可以与sql server2005连接了,若是会ASP的朋友这个应该中比较熟悉的哈

首先运用:$conn=new COM('ADODB.Connection');创建一个conn对象,我们可以完全用ASP的方法

来写的,只是语法有点区别罢了.然后在用户open 方法来打开一个连接,由于sql server2005与sql server2000

的驱动不一样,sql server 2000的驱动为sqloledb,而sql server2005缺完全不一样为SQLNCI.1,在连接之前如果

你的sql server2005在本地连接与就是localhost那就不用管如不是请确认你的sql server2005是否开启了远程连

接,因为sql server 2005默认是不允许远程连接的.如何开启请点击:开始->程序->Micrsoft SQL server 2005->

配置工具->外围应用与管理器->服务和连接的外围应用配置器->远程服务->选择本地连接和远程连接->再选择同时

使用TCP/IP和named pipes

呵呵,下面我在执行SQL语句,我可用Execute来执行sql语句或ADODB.Recordset,下面我们先用Execute

来执行,

呵呵,小马哥与弄好久才弄明白,不明白的可以慢慢来

假如我已经建立了一张表名为user

$conn=new COM('ADODB.Connection') or die('连接错误');

$myDSN="Provider=SQLNCLI.1;Persist Security Info=True;Data Source=localhost;User ID=dbname;Password=dbpass;Initial Catalog=database";

$conn->open($myDSN) or die('连接语句无效');

$sql="select * from [user]";

$rs=$conn->execute($sql);

if($rs->eof()){

print('没有任何数据');

}else{

while(!$rs->eof()){

echo $rs->fields[0]->value;

$rs->movenext();

}

}

呵呵是不是看起来与ASP操作一样的三,其它ASP的操作的方法这里好像都能用

这看看ADODB.Recordset

$conn=new COM('ADODB.Connection') or die('连接错误');

$myDSN="Provider=SQLNCLI.1;Persist Security Info=True;Data Source=localhost;User ID=dbname;Password=dbpass;Initial Catalog=database";

$conn->open($myDSN) or die('连接语句无效');

$rs=new COM('ADODB.Recordset');

$sql="select * from [user]";

$rs->open($sql,$conn,1,3);

if($rs->eof()){

print('没有任何数据');

}else{

while(!$rs->eof()){

echo $rs->fields(0)->value;

$rs->movenext();

}

}

呵呵,就是一点点区别,对了我们在ASP中获取一个字段的值如:rs("Username")就可以得到,在php中也可以

如:$rs['username']也可以得到值,但是要注意一个问题,这样如有其中有一项为NULL值,那php就会报这

样的错误:Catchable fatal error: Object of class variant could not be converted to string in E:/Web/wwwroot/teaweb/Teahouses/Include/index.class.php.cs on line 100

如果想用is_null或empty来判断那是判断不到的,而其还报错的更历害.怎么解决呢?

呵呵不如慌,要这样如要获取的字段名为username那就这样来测式它是不是为NULL

if( $rs->fields('username')->value==NULL){

echo '为NULL';

}else{

echo '不为NULL';

}

这样就有效的判断它是否为NULL了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值