耳机俱乐部论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

查看: 2603|回复: 0

php程序来连接SQL Server数据库的通用类 ~~~~~

[复制链接]

2

主题

2

帖子

1

积分

初级会员

Rank: 2Rank: 2

积分
1
注册时间
2005-5-18
发表于 2005-5-18 17:10:27 | 显示全部楼层 |阅读模式

感谢关注耳机俱乐部网站,注册后有更多权限。

您需要 登录 才可以下载或查看,没有账号?注册

x
  php程序来连接SQL Server数据库的通用类 ~~~~~
    
    注意:php空间需要支持mssql模块
    很多朋友问我如何用php程序来连接SQL Server数据库的通用类,其实这个并不是很难的,关键是一点点仔细,一点点耐心,用激情去理解
    
   抽象,要是你激情耗尽了它还是什么都不像的话,那就麻烦了。以下是我的一点经验,而且有兴趣搞智能建站的朋友可以去这个网站看看( http://www.now.net.cn)这家公司很不错的,在珠海,叫时代互联。有些朋友可能已经知道。它一直是业内的领先者,技术力量很雄厚,主要业务是智能建站、域名申请、企业邮箱、主机租售等等。有兴趣的朋友可以登陆( http://www.now.net.cn )拨打全球免费服务电话咨询。言归正传
   <?
   class DB {
    var $Host = "192.168.0.199"; // Hostname of our MySQL server
    var $Database = "test"; // Logical database name on that server
    var $User = "user"; // Database user
    var $Password = "password"; // Database user's password
    
    var $Link_ID = 0; // Result of mssql_connect()
    var $Query_ID = 0; // Result of most recent mssql_query()
    var $Row = 0; // Current row number
    var $Errno = 0; // Error state of query
    var $Error = "";
    
   var $AffNum=0;
    
   /**************************************
    *打印错误方法:显示页面处理的错误信息。
   ****************************************/
   function Halt($msg) {
    printf("</td></tr></table><b>Database error:</b> %s<br>\n", $msg);
    printf("<b>mssql Error</b>: %s (%s)<br>\n",
    $this->Errno,
    $this->Error);
    die("Session halted.");
    }
    
   /**************************************
    *连接数据库,并且选择默认的数据库
    **************************************/
   function Connect() {
    if ( 0 == $this->Link_ID ) {
   $this->Link_ID=mssql_connect($this->Host,$this->User,$this-&gtassword) or die("Couldn't connect to SQL Server on
    
   $servername");
   $db=@mssql_select_db($this->Database,$this->Link_ID);
    if (!$this->Link_ID) {
    $this->Halt("Link-ID == false, mssql_connect failed");
    }
    }
    }
    
   /****************************************
    *关闭数据库,如果数据库连接已经打开则关闭它
    *请在调用Connect()并处理后使用Close()
    ****************************************/
   function Close() {
   if (0 != $this->Link_ID){
   mssql_close();
   }
   }
    
   /*************************************************
    *输入sql语句,有select,update,insert,delete
    *包括存储过程也可以通过这个方法来调用。
    *************************************************/
   function Query($Query_String) {
    $this->Connect();
    
    $this->Query_ID = mssql_query($Query_String);
    $this->Row = 0;
    if (!$this->Query_ID) {
   $msg=mssql_get_last_message();
    
   if($msg==null || $msg=="")
   {
   $this->AffNum=1;
   return 1;
   }
    
   if(strtolower(substr($Query_String,0,6))!="select"){
   $this->AffNum=1;
   return 1;
   }
    
    $this->Errno = 1;
    $this->Error = "General Error (The mssql interface cannot return detailed error messages)(".$msg.").";
    $this->halt("Invalid SQL: ".$Query_String);
    }
    return $this->Query_ID;
    }
    
   /*******************************************************
    *把查询数据库的指针移到下一条记录
    *******************************************************/
   function NextRecord() {
    $this->Record = array();
   mssql_next_result($this->Query_ID);
   $this->Record=mssql_fetch_array($this->Query_ID);
    
   $result=$this->Record;
   if(!is_array($result)) return $this->Record;
   foreach($result as $key => $value){
   $keylower=strtolower($key);
   if($keylower!=$key) $this->Record[$keylower]=$value;
   }
    
    return $this->Record;
    }
    
   /********************************************************
    *重新定位查询数据库的指针
    ********************************************************/
   function Seek($pos) {
   if($pos<=0) return;
   if(eregi("[0-9]",$pos)) mssql_data_seek($this->Query_ID,$pos);
    }
    
   /********************************************************
    *获取查询数据库得到的总行数
    ********************************************************/
   function NumRows() {
   if($this->Query_ID) $num_rows=mssql_num_rows($this->Query_ID);
   else $num_rows=$this->AffNum;
    
    return $num_rows;
    }
    
   /*******************************************************
    *字段数
    *******************************************************/
   function NumFields() {
    return count($this->Record)/2;
    }
    
   /*******************************
    *该字段的值
    *******************************/
   function FieldValue($Field_Name){
   return $this->Record[$Field_Name];
    }
    
   /******************************
    *update,insert,delete影响的行数
    ******************************/
   function AffectedRows() {
   if($this->Query_ID) return mssql_num_rows($this->Query_ID);
   else{
   return $this->AffNum;
   }
    }
   ?>
    
    
   以下是使用示例:
    
   <?
   //构造新的DB类
   $DBConn=new DB;
    
   //写入sql查询语句
   $SqlStr="select * from test";
   $DBConn->Query($SqlStr);
    
   //循环输出查询得到的结果
   while($Row=$DBConn->NextRecord()){
   echo $Row[testid];
   }
    
   //关闭数据库连接
   $DBConn->Close();

   ?>
     基本A型主机(jsp) 送CN域名 送100Mb邮局 430 元/年
     增强B型主机(php,mysql) 送CN域名 送300M 空间邮箱 798 元/年
     商务型D 2300元/年 500M的网站空间+JSP+SQL SERVER 2000

     详情点击:http://now.net.cn/host/commerce.net
   ----------------------------------------------------------------
   大家快到这里继续学习其他的知识: http://www.now.net.cn/support/

    
   提供免费咨询电话 : http://www.now.net.cn/customer/moreline.net

    QQ 联系 :168075865  188092185
    
   大家懂了吗?懂了就要说懂,不懂就要说不懂,你不能懂了说你没懂,没懂反而说懂了,懂就是懂,不懂就是不懂...哎呦,谁拿臭鸡蛋丢我? 我话还没说完啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

耳机俱乐部微信
耳机俱乐部微信

QQ|联系我们|有害信息举报:010-60152166 邮箱:zx@jd-bbs.com|手机版|Archiver|黑名单|中国耳机爱好者俱乐部 ( 京ICP备09075138号 )

GMT+8, 2025-5-15 05:26 , Processed in 0.087224 second(s), 29 queries , Gzip On.

快速回复 返回顶部 返回列表