注意:php空间需要支持mssql模块 
     很多朋友问我如何用php程序来连接SQL Server数据库的通用类,其实这个并不是很难的,关键是一点点仔细,一点点耐心,用激情去理解 
     
    抽象,要是你激情耗尽了它还是什么都不像的话,那就麻烦了。以下是我的一点经验,而且有兴趣搞智能建站的朋友可以去这个网站看看(http://www.no 
     
    w.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->Password) 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(); 
    ?> 
    大家懂了吗?懂了就要说懂,不懂就要说不懂,你不能懂了说你没懂 
    没懂反而说懂了,懂就是懂,不懂就是不懂...哎呦,谁拿臭鸡蛋丢我? 
    我话还没说完啊,其实不懂也没有关系,懂了就更没有关系了,但是你 
    不懂...不要丢了... 有兴趣的朋友请点击一下链接登陆论坛 
    
      [url=http://www.592benet.com.cn/]http://www.592benet.com.cn/[/url]