mysql.class.php 鏈接數據庫類

文件名mysql.class.php
<?
//###################### Start Introduce #######################################
// mysql連接類
// author: bluemaple , emaile: bluemaple@x263.net
// 可以執行一般mysql命令,如insert,delete,select,update
// 使用方法:在需要的文件前面加入
// require("./mysql.class.php");
// $DB=new DB_MYSQL;            // 加載類
// $DB->dbServer="localhost";   // 連接數據庫地址
// $DB->dbUser="root";          // 用戶名
// $DB->dbPwd="";               // 密碼
// $DB->dbDatabase="we";        // 數據庫名稱
// $DB->connect();             // 連接數據庫
// 使用中可以更改數據庫
// 可以用到的函數說明
// query($sql,$dbbase);         // 可以直接執行
// query_first($sql,$dbbase);   // 查詢返回隻有一條記錄,$sql為sql語句,$dbbase為你選者數據庫(可以不要)
// fetch_array($sql,$dbbase);   // 查詢返回一組記錄,可以用num_rows得到返回的數字
// insert,update,delete 皆為執行命令,其中可用$affected_rows;得到返回的數目
// 在insert時,可以用insert_id得到插入結果的返回id數
// count_records($table,$index,$where,$dbbase)// 為得到一個表記錄的數目,$table為表名,$index為key,$where為條件,$dbbase為數據庫,後兩個可以不選
//####################### End Introduce ########################################

class DB_MYSQL          // 數據庫mysql查詢的類
{  
  var $dbServer;        // 數據庫連接服務地址
  var $dbDatabase;      // 所選擇的數據庫,初始狀態
  var $dbbase="";       // 後面可以改變的
  var $dbUser;          // 登陸用戶名
  var $dbPwd;           // 登陸用戶密碼  
  var $dbLink;          // 數據庫連接指針
  var $query_id;        // 執行query命令的指針
  var $num_rows;        // 返回的條目數
  var $insert_id;       // 傳回最後一次使用 INSERT 指令的 ID
  var $affected_rows;   // 傳回query命令所影響的列數目
                  // INSERT、UPDATE 或 DELETE 所影響的列 (row) 數目。
                  // delete 如果不帶where,那麼則返回0
     
  function connect($dbbase="")    // 連接數據庫函數,包括連接數據庫
        {
         global $usepconnect;   // 是否采用永久連接,$userpconnect在外部設置。
         if ($usepconnect==1){
                $this->dbLink=@mysql_pconnect($this->dbServer,$this->dbUser,$this->dbPwd);
                              } else {
                $this->dbLink=@mysql_connect($this->dbServer,$this->dbUser,$this->dbPwd);
                }
          if(!$this->dbLink) $this->halt("連接出錯,無法連接!!!");
          if ($dbbase=="") {
            $dbbase=$this->dbDatabase;
            }                        
        if(!mysql_select_db($dbbase, $this->dbLink))  // 連接數據庫
                          { $this->halt("不能夠用這個數據庫,請檢查這個數據庫是否正確!!!");}
          }
 
  function change_db($dbbase=""){ // 改變數據庫
      $this->connect($dbbase);
      }

  function query_first($sql,$dbbase=""){ // 返回一個值的sql命令
      $query_id=$this->query($sql,$dbbase);
        $returnarray=mysql_fetch_array($query_id);
        $this->num_rows=mysql_num_rows($query_id);
      $this->free_result($query_id);      
      return $returnarray;
      }
 
  function fetch_array($sql,$dbbase="",$type=0){ // 返回一個值的sql命令
                           // type為傳遞值是name=>value,還是4=>value
      $query_id=$this->query($sql,$dbbase);
      $this->num_rows=mysql_num_rows($query_id);
      for($i=0;$i<$this->num_rows;$i++){
          if($type==0)
              $array[$i]=mysql_fetch_array($query_id);
          else
              $array[$i]=mysql_fetch_row($query_id);
          }
      $this->free_result($query_id);
      return $array;
      }
 
  function delete($sql,$dbbase=""){ // 刪除命令
      $query_id=$this->query($sql,$dbbase);
      $this->affected_rows=mysql_affected_rows($this->dbLink);
      $this->free_result($query_id);
        }
 
  function insert($sql,$dbbase=""){ // 插入命令
      $query_id=$this->query($sql,$dbbase);
      $this->insert_id=mysql_insert_id($this->dbLink);
      $this->affected_rows=mysql_affected_rows($this->dbLink);
      $this->free_result($query_id);
        }
 
  function update($sql,$dbbase=""){  //  更新命令
      $query_id=$this->query($sql,$dbbase);
      $this->affected_rows=mysql_affected_rows($this->dbLink);      
      $this->free_result($query_id);
      }
 
  function count_records($table,$index="id",$where="",$dbbase=""){ // 記錄總共表的數目
                                                   // where為條件
                                                   // dbbase為數據庫
                                                   // index為所選key,默認為id
        if($dbbase!="") $this->change_db($dbbase);
        $result=@mysql_query("select count(".$index.") as 'num' from $table ".$where,$this->dbLink);
        if(!$result) $this->halt("錯誤的SQL語句: ".$sql);
        @$num = mysql_result($result,0,"num");    
        return $num;
      }
 
  function query($sql,$dbbase=""){   // 執行queyr指令
      if($dbbase!="") $this->change_db($dbbase);
    $this->query_id=@mysql_query($sql,$this->dbLink);
    echo "d";
    if(!$this->query_id) $this->halt("錯誤的SQL語句: ".$sql);
    return $this->query_id;
      }
   
  function halt($errmsg)  // 數據庫出錯,無法連接成功
        {
            $msg="<h3><b>數據庫出錯!</b></h3><br>";
            $msg.=$errmsg;
            echo $msg;
            die();
      }

  function free_result($query_id)  // 釋放query選者
        {
        @mysql_free_result($query_id);
        }

  function close()        //關閉數據庫連接
        {
      mysql_close($this->dbLink);
        }
}
?>

以下是使用方法

text.php
<?
require("./mysql.class.php");
$DB=new DB_MYSQL;
$DB->dbServer="localhost";
$DB->dbUser="root";
$DB->dbPwd="";
$DB->dbDatabase="we";
$DB->connect(); // 連接數據庫
?>

from 幻泉之洲

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *