程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php 數據庫mysql查詢與連接類

php 數據庫mysql查詢與連接類

編輯:關於PHP編程

<?php


class mysql
{
 var $host     = "";   //mysql主機名
 var $user     = "";   //mysql用戶名
 var $pwd      = "";   //mysql密碼
 var $dbName   = "";   //mysql數據庫名稱
 var $linkID   = 0;   //用來保存連接ID
 var $queryID  = 0;   //用來保存查詢ID
 var $fetchMode= MYSQL_ASSOC;//取記錄時的模式
 var $queryTimes = 0;  //保存查詢的次數
 var $errno    = 0;   //mysql出錯代號
 var $error    = "";   //mysql出錯信息
 var $record   = array(); //一條記錄數組

 //======================================
 // 函數: mysql()
 // 功能: 構造函數
 // 參數: 參數類的變量定義
 // 說明: 構造函數將自動連接數據庫
 //       如果想手動連接去掉連接函數
 //======================================
 function mysql($host,$user,$pwd,$dbName)
 { if(empty($host) || empty($user) || empty($dbName))
   $this->halt("數據庫主機地址,用戶名或數據庫名稱不完全,請檢查!");
  $this->host    = $host;
  $this->user    = $user;
  $this->pwd     = $pwd;
  $this->dbName  = $dbName;
  $this->connect();//設置為自動連接
 }
 //======================================
 // 函數: connect($host,$user,$pwd,$dbName)
 // 功能: 連接數據庫
 // 參數: $host 主機名, $user 用戶名
 // 參數: $pwd 密碼, $dbName 數據庫名稱
 // 返回: 0:失敗
 // 說明: 默認使用類中變量的初始值
 //======================================
 function connect($host = "", $user = "", $pwd = "", $dbName = "")
 {
  if ("" == $host)
   $host = $this->host;
  if ("" == $user)
   $user = $this->user;
  if ("" == $pwd)
   $pwd = $this->pwd;
  if ("" == $dbName)
   $dbName = $this->dbName;
  //now connect to the database
  $this->linkID = mysql_pconnect($host, $user, $pwd);
  if (!$this->linkID)
  {
   $this->halt();
   return 0;
  }
  if (!mysql_select_db($dbName, $this->linkID))
  {
   $this->halt();
   return 0;
  }
  return $this->linkID;   
 }
 //======================================
 // 函數: query($sql)
 // 功能: 數據查詢
 // 參數: $sql 要查詢的SQL語句
 // 返回: 0:失敗
 //======================================
 function query($sql)
 {
  $this->queryTimes++;
  $this->queryID = mysql_query($sql, $this->linkID);
  if (!$this->queryID)
  { 
   $this->halt();
   return 0;
  }
  return $this->queryID;
 }
 //======================================
 // 函數: setFetchMode($mode)
 // 功能: 設置取得記錄的模式
 // 參數: $mode 模式 MYSQL_ASSOC, MYSQL_NUM, MYSQL_BOTH
 // 返回: 0:失敗
 //======================================
 function setFetchMode($mode)
 {
  if ($mode == MYSQL_ASSOC || $mode == MYSQL_NUM || $mode == MYSQL_BOTH)
  {
   $this->fetchMode = $mode;
   return 1;
  }
  else
  {
   $this->halt("錯誤的模式.");
   return 0;
  }
  
 }
 //======================================
 // 函數: fetchRow()
 // 功能: 從記錄集中取出一條記錄
 // 返回: 0: 出錯 record: 一條記錄
 //======================================
 function fetchRow()
 {
  $this->record = mysql_fetch_array($this->queryID,$this->fetchMode);
  return $this->record;
 }
 //======================================
 // 函數: fetchAll()
 // 功能: 從記錄集中取出所有記錄
 // 返回: 記錄集數組
 //======================================
 function fetchAll()
 {
  $arr = array();
  while($this->record = mysql_fetch_array($this->queryID,$this->fetchMode))
  {
   $arr[] = $this->record;
  }
  mysql_free_result($this->queryID);
  return $arr;
 }
 //======================================
 // 函數: getValue()
 // 功能: 返回記錄中指定字段的數據
 // 參數: $field 字段名或字段索引
 // 返回: 指定字段的值
 //======================================
 function getValue($field)
 {
  return $this->record[$field];
 }
 //======================================
 // 函數: affectedRows()
 // 功能: 返回影響的記錄數
 //======================================
 function affectedRows()
 {
  return mysql_affected_rows($this->linkID);
 }
 //======================================
 // 函數: recordCount()
 // 功能: 返回查詢記錄的總數
 // 參數: 無
 // 返回: 記錄總數
 //======================================
 function recordCount()
 {
  return mysql_num_rows($this->queryID);
 }
 //======================================
 // 函數: getQueryTimes()
 // 功能: 返回查詢的次數
 // 參數: 無
 // 返回: 查詢的次數
 //======================================
 function getQueryTimes()
 {
  return $this->queryTimes;
 }
 //======================================
 // 函數: getVersion()
 // 功能: 返回mysql的版本
 // 參數: 無
 //======================================
 function getVersion()
 {
  $this->query("select version() as ver");
  $this->fetchRow();
  return $this->getValue("ver");
 }
 //======================================
 // 函數: getDBSize($dbName, $tblPrefix=null)
 // 功能: 返回數據庫占用空間大小
 // 參數: $dbName 數據庫名
 // 參數: $tblPrefix 表的前綴,可選
 //======================================
 function getDBSize($dbName, $tblPrefix=null)
 {
  $sql = "SHOW TABLE STATUS FROM " . $dbName;
  if($tblPrefix != null) {
   $sql .= " LIKE '$tblPrefix%'";
  }
  $this->query($sql);
  $size = 0;
  while($this->fetchRow())
   $size += $this->getValue("Data_length") + $this->getValue("Index_length");
  return $size;
 }
 //======================================
 // 函數: insertID()
 // 功能: 返回最後一次插入的自增ID
 // 參數: 無
 //======================================
 function insertID() {
  return mysql_insert_id();
 }
 //======================================
 // 函數: halt($err_msg)
 // 功能: 處理所有出錯信息
 // 參數: $err_msg 自定義的出錯信息
 //=====================================
 function halt($err_msg="")
 {
  if ("" == $err_msg)
  {
   $this->errno = mysql_errno();
   $this->error = mysql_error();
   echo "<b>mysql error:<b><br>";
   echo $this->errno.":".$this->error."<br>";
   exit;
  }
  else
  {
   echo "<b>mysql error:<b><br>";
   echo $err_msg."<br>";
   exit;
  }
 }
}
?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved