当前位置:首页 > PHP教程 > php类库 > 列表

php mssql 数据库连接类代码

发布:smiling 来源: PHP粉丝网  添加日期:2014-09-11 23:30:01 浏览: 评论:0 

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

Tags: php mssql数据库连接类

分享到: