php5 操作MYSQL的類(lèi)<?php
/**
操作mysql數據庫的類(lèi)
Author:SmileAgain
Creatdate:2005-9-14
LastModify:2006-03-1
*/
class mysql{
private $server = "";
private $user = "";
private $password = "";
private $database;
private $linkMode=1;
private $link_id = 0;
private $query_id =0;
private $query_times = 0;
private $result = array();
private $fetchMode = MYSQL_ASSOC;
private $err_no = 0;
private $err_msg;
//======================================
// 函數: mysql()
// 功能: 構造函數
// 參數: 參數類(lèi)的變量定義
// 說(shuō)明: 構造函數將自動(dòng)連接數據庫
// 如果想手動(dòng)連接去掉自動(dòng)連接函數
//======================================
public function __construct($server,$user,$password,$database,$linkMode=0)
{
if( empty($server) || empty($user) || empty($database) )
$this->halt("提交的數據庫信息不完整!請檢查服務(wù)器地址,用戶(hù)和數據庫是否正確有效");
$this->server = $server;
$this->user = $user;
$this->password = $password;
$this->database = $database;
$this->linkMode = $linkMode;
$this->connect();
}
//======================================
// 函數: connect($server,$user,$password,$database)
// 功能: 連接數據庫
// 參數: $server 主機名, $user 用戶(hù)名
// 參數: $password 密碼, $database 數據庫名稱(chēng)
// 返回: 0:失敗
// 說(shuō)明: 默認使用類(lèi)中變量的初始值
//======================================
public function connect($server = "",$user = "",$password = "" ,$database = "")
{
$server = $server ? $server : $this->server;
$user = $user ? $user : $this->user;
$password = $password ? $password : $this->password;
$database = $database ? $database : $this->database;
$this->link_id = $this->linkMode ? mysql_pconnect($server, $user, $password, $database) : mysql_connect($server, $user, $password, $database);
if(!$this->link_id)
{
$this->halt("數據庫連接失??!請檢查各項參數!");
return 0;
}
if (!mysql_select_db($database, $this->link_id))
{
$this->halt("無(wú)法選擇數據庫");
return 0;
}
return $this->link_id;
}
//======================================
// 函數: query($sql)
// 功能: 數據查詢(xún)
// 參數: $sql 要查詢(xún)的SQL語(yǔ)句
// 返回: 0:失敗
//======================================
public function query($sql)
{
$this->query_times++;
$this->query_id = mysql_query($sql, $this->link_id);
if( !$this->query_id)
{
$this->halt("執行不成功!");
return 0;
}
return $this->query_id;
}
//======================================
// 函數: setFetchMode($mode)
// 功能: 設置取得記錄的模式
// 參數: $mode 模式 MYSQL_ASSOC, MYSQL_NUM, MYSQL_BOTH
// 返回: 0:失敗
//======================================
public 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: 一條記錄
//======================================
public function fetchRow()
{
$this->record = mysql_fetch_array($this->query_id,$this->fetchMode);
return $this->record;
}
//======================================
// 函數: fetchAll()
// 功能: 從記錄集中取出所有記錄
// 返回: 記錄集數組
//======================================
public function fetchAll()
{
$arr[] = array();
while($this->record = mysql_fetch_array($this->query_id, $this->fetchMode))
$arr[] = $this->record;
mysql_free_result($this->query_id);
return $arr;
}
//======================================
// 函數: getValue()
// 功能: 返回記錄中指定字段的數據
// 參數: $field 字段名或字段索引
// 返回: 指定字段的值
//======================================
public function getValue($filed)
{
return $this->record[$filed];
}
//======================================
// 函數: getquery_id()
// 功能: 返回查詢(xún)號
//======================================
public function getquery_id()
{
return $this->query_id;
}
//======================================
// 函數: affectedRows()
// 功能: 返回影響的記錄數
//======================================
public function affectedRows()
{
return mysql_affected_rows($this->link_id);
}
//======================================
// 函數: recordCount()
// 功能: 返回查詢(xún)記錄的總數
// 參數: 無(wú)
// 返回: 記錄總數
//======================================
public function recordCount()
{
return mysql_num_rows($this->query_id);
}
//======================================
// 函數: getquery_times()
// 功能: 返回查詢(xún)的次數
// 參數: 無(wú)
// 返回: 查詢(xún)的次數
//======================================
public function getquery_times()
{
return $this->query_times;
}
//======================================
// 函數: getVersion()
// 功能: 返回mysql的版本
// 參數: 無(wú)
//======================================
public function getVersion()
{
$this->query("select version() as ver");
$this->fetchRow();
$this->getValue("ver");
}
//======================================
// 函數: getDBSize($database, $tblPrefix=null)
// 功能: 返回數據庫占用空間大小
// 參數: $database 數據庫名
// 參數: $tblPrefix 表的前綴,可選
//======================================
public function getDBSize($database, $tblPrefix=null)
{
$sql = "SHOW TABLE STATUS FROM " . $database;
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;
}
//======================================
// 函數: halt($err_msg)
// 功能: 處理所有出錯信息
// 參數: $err_msg 自定義的出錯信息
//=====================================
public 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;
}
}
//======================================
// 函數: insertID()
// 功能: 返回最后一次插入的自增ID
// 參數: 無(wú)
//======================================
public function insertID()
{
return mysql_insert_id();
}
//======================================
//函數:close()
//功能:關(guān)閉非永久的數據庫連接
//參數:連接ID
//======================================
public function close($link_id)
{
$link_id = $link_id ? $link_id : $this->link_id;
mysql_close($link_id);
}
//======================================
//函數:析構函數
//功能:釋放類(lèi)
//參數:無(wú)
//======================================
public function __destruct()
{
//echo "class disconstructed";
}
}
?>