当前位置:首页 > PHP教程 > php应用 > 列表

php的mssql数据库连接类实例

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-01 10:39:10 浏览: 评论:0 

这篇文章主要介绍了php的mssql数据库连接类,以一个类实例的形式演示了PHP实现针对mssql数据库的各种常用操作方法,包括对数据库的连接与增删改查等操作,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了php的mssql数据库连接类实例代码,分享给大家供大家参考。

具体实现代码如下:

  1. class DB_Sql { 
  2.   var $Host     = ""
  3.   var $Database = ""
  4.   var $User     = ""
  5.   var $Password = ""
  6.   var $Link_ID  = 0; 
  7.   var $Query_ID = 0; 
  8.   var $Record   = array(); 
  9.   var $Row      = 0; 
  10.    
  11.   var $Errno    = 0; 
  12.   var $Error    = ""
  13.   var $Auto_Free = 0;     ## set this to 1 to automatically free results 
  14.    
  15.   function DB_Sql($query = "") { 
  16.       $this->query($query); 
  17.   } 
  18.   function connect() { 
  19.     if ( 0 == $this->Link_ID ) { 
  20.       $this->Link_ID=mssql_connect($this->Host, $this->User, $this->Password); 
  21.       if (!$this->Link_ID) 
  22.         $this->halt("Link-ID == false, mssql_pconnect failed"); 
  23.       else 
  24.           @mssql_select_db($this->Database, $this->Link_ID); 
  25.     } 
  26.   } 
  27.   function free_result(){ 
  28.       mssql_free_result($this->Query_ID); 
  29.       $this->Query_ID = 0; 
  30.   } 
  31.    
  32.   function query($Query_String)  
  33.   { 
  34.      
  35.     /* No empty queries, please, since PHP4 chokes on them. */ 
  36.     if ($Query_String == ""
  37.       /* The empty query string is passed on from the constructor, 
  38.        * when calling the class without a query, e.g. in situations 
  39.        * like these: '$db = new DB_Sql_Subclass;' 
  40.        */ 
  41.       return 0; 
  42.       if (!$this->Link_ID) 
  43.         $this->connect(); 
  44.      
  45. #   printf("<br>Debug: query = %s<br> "$Query_String); 
  46.  
  47.  $this->Query_ID = mssql_query($Query_String$this->Link_ID); 
  48.     $this->Row = 0; 
  49.     if (!$this->Query_ID) { 
  50.       $this->Errno = 1; 
  51.       $this->Error = "General Error (The MSSQL interface cannot return detailed error messages)."
  52.       $this->halt("Invalid SQL: ".$Query_String); 
  53.     } 
  54.     return $this->Query_ID; 
  55.   } 
  56.    
  57.   function next_record() { 
  58.        
  59.     if ($this->Record = mssql_fetch_row($this->Query_ID)) { 
  60.       // add to Record[<key>] 
  61.       $count = mssql_num_fields($this->Query_ID); 
  62.       for ($i=0; $i<$count$i++){ 
  63.           $fieldinfo = mssql_fetch_field($this->Query_ID,$i); 
  64.         $this->Record[strtolower($fieldinfo->name)] = $this->Record[$i]; 
  65.       } 
  66.       $this->Row += 1; 
  67.       $stat = 1; 
  68.     } else { 
  69.       if ($this->Auto_Free) { 
  70.             $this->free_result(); 
  71.           } 
  72.       $stat = 0; 
  73.     } 
  74.     return $stat
  75.   } 
  76.    
  77.   function seek($pos) { 
  78.         mssql_data_seek($this->Query_ID,$pos); 
  79.       $this->Row = $pos
  80.   } 
  81.   function metadata($table) { 
  82.     $count = 0; 
  83.     $id    = 0; 
  84.     $res   = array(); 
  85.     $this->connect(); 
  86.     $id = mssql_query("select * from $table"$this->Link_ID); 
  87.     if (!$id) { 
  88.       $this->Errno = 1; 
  89.       $this->Error = "General Error (The MSSQL interface cannot return detailed error messages)."
  90.       $this->halt("Metadata query failed."); 
  91.     } 
  92.     $count = mssql_num_fields($id); 
  93.      
  94.     for ($i=0; $i<$count$i++) { 
  95.         $info = mssql_fetch_field($id$i); 
  96.       $res[$i]["table"] = $table
  97.       $res[$i]["name"]  = $info["name"]; 
  98.       $res[$i]["len"]   = $info["max_length"]; 
  99.       $res[$i]["flags"] = $info["numeric"]; 
  100.     } 
  101.     $this->free_result(); 
  102.     return $res
  103.   } 
  104.    
  105.   function affected_rows() { 
  106. // Not a supported function in PHP3/4.  Chris Johnson, 16May2001. 
  107. //    return mssql_affected_rows($this->Query_ID); 
  108.     $rsRows = mssql_query("Select @@rowcount as rows"$this->Link_ID); 
  109.     if ($rsRows) {        
  110.        return mssql_result($rsRows, 0, "rows"); 
  111.     } 
  112.   } 
  113.    
  114.   function num_rows() { 
  115.     return mssql_num_rows($this->Query_ID); 
  116.   } 
  117.    
  118.   function num_fields() { 
  119.     return mssql_num_fields($this->Query_ID); 
  120.   } 
  121.   function nf() { 
  122.     return $this->num_rows(); 
  123.   } 
  124.    
  125.   function np() { 
  126.     print $this->num_rows(); 
  127.   } 
  128.    
  129.   function f($Field_Name) { 
  130.     return $this->Record[strtolower($Field_Name)]; 
  131.   } 
  132.    
  133.   function p($Field_Name) { 
  134.     print $this->f($Field_Name); 
  135.   } 
  136.   //www.phpfensi.com 
  137.   function halt($msg) { 
  138.     printf("</td></tr></table><b>Database error:</b> %s<br> "$msg); 
  139.     printf("<b>MSSQL Error</b>: %s (%s)<br> "
  140.       $this->Errno, 
  141.       $this->Error); 
  142.     die("Session halted."); 
  143.   } 

希望本文所述对大家的PHP程序设计有所帮助。

Tags: php+mssql数据库连接类

分享到: