<?php
/*
* Mysql數據庫操作類
* 實現Mysql的連接,只支持操作mysql數據庫。
* 默認字符集:UTF-8
* 使用方法:new MysqlConnection(數據庫服務器地址,用戶名,密碼,數據庫名,字符集='utf8');
* 暫時功能:
* 數據庫查詢 :Limit_Sql(表名,條件,查詢字段)
* 插入新數據 :Insert_Sql(表名,條件)、
* 修改數據 :Update_Sql(表名,修改字段,條件)、
* 刪除數據 :Del_Sql(表名,條件)、
* 清空表 :Trun_Sql(表名,條件)、
* 直接執行語句 :SqlQuery(sql語句)、
* 統計數據條數 :Count(表名,條件)、
* 製作人:譚寧寧
* 聯繫方式:QQ:597398742,MSN:[email protected]
* 最近修改時間:2011年09月14日
* 修改說明:修正無法連接數據庫的BUG!
* 添加 connect()方法。用於數據庫連接
* 修改說明:修正query方法裏的 $this->connect()連接句柄錯誤
* 添加Count(tablename,where)方法。統計數據庫條數
* 說明:這是較深入學習‘面向對象’後進行的修改。
* 歡迎各位PHP同行前來一塊討論!(尤其是女PHP開發,嘿嘿~)
*/
class MysqlConnection
{
public $dbtype=""; //數據庫連接類型
public $dbip=""; //數據庫服務器IP
public $dbuser=""; //用戶名
public $dbpwd=""; //密碼
public $dbname=""; //數據庫名稱
public $dbchar="utf8"; //字符集,默認utf8
public $conn=""; //Mysql連接變量
/*
* 構造函數
* 進行MySQL連接
*/
function __construct($dbip,$dbuser,$dbpwd,$dbname,$dbchar='utf8')
{
$this->dbip=$dbip;
$this->dbuser=$dbuser;
$this->dbpwd=$dbpwd;
$this->dbname=$dbname;
$this->dbchar=$dbchar;
}
/*
* 數據庫鏈接方法
*/
function connect()
{
$this->conn=mysql_connect($this->dbip,$this->dbuser,$this->dbpwd) or die('無法連接到數據庫!');
$this->sel_db();
return $this->conn;
}
/*
* 選擇數據庫&設置字符集
*/
public function sel_db()
{
mysql_select_db($this->dbname) or die('無法打開數據庫!'); //選擇數據庫
mysql_set_charset($this->dbchar); //設置字符集
}
/*
* query方式執行SQL語句
* 返回一個未處理的查詢結果集
*/
private function query($sql)
{
$conn=$this->connect();
$result=mysql_query($sql,$conn) or die("語句錯誤!請聯繫管理員解決!");
return $result;
}
/*
* 關閉數據庫
*/
public function close()
{
mysql_close($this->connect());
}
/*
* SQL查詢操作
* 方法名:Limit_Sql(表名,條件,查詢字段)
*/
public function Limit_Sql($table_name,$where='',$sqldata='*')
{
$sql="select $sqldata from $table_name $where";/*生成sql語句*/
$rs=$this->query($sql); /*本地調用query執行方法*/
$this->close(); /*本地調用close方法,關閉數據庫*/
$this->free();
if($rs)/*返回sql執行之後的結果集*/
{ return $rs;}
else
{ return false;}
}
/*
*直接執行sql語句
*目前用於未考慮的sql語句
*/
public function SqlQuery($sql)
{
$result=$this->query($sql);
$this->close();
if($result)
{ return $result; }
else
{ return false; }
}
/*
*功能:將查詢得到的結果以二維數組的形式返回
*返回的數組格式:array=(1=>array('字段'='字段值'));
*配合Limit_Sql使用
*/
public function R_Limit($result)
{
$list=array();
$re=array();
$i=0;
while($rs=mysql_fetch_array($result))
{
$re[$i]=$rs;
$i++;
}
foreach($re as $key=>$value)
{
foreach($value as $k2=>$v2)
{
//如果$2鍵名爲數字,則continue,取消本次操作
if(is_integer($k2))
{ continue; }
//$key表示一共有幾條數據$k2表示字段名,$v2表示該字段下的值
$list[$key][$k2]=$v2;
}
}
return $list;
}
/*
*SQL添加操作
*方法名:Insert_Sql(表名,查詢字段,條件)
*/
public function Insert_Sql($table_name,$sqldata,$where='')
{
$sql="insert into $table_name set $sqldata $where";
/*本地調用連接方法*/
$result=MysqlConnection::query($sql); /*本地調用query執行方法*/
$this->close(); /*本地調用close方法,關閉數據庫*/
if($result)
{ return true;}
else
{ return false;}
}
/*
*SQL修改操作
*方法名:Update_Sql(表名,查詢字段,條件)
*/
public function Update_Sql($table_name,$sqldata,$where='')
{
$sql="update $table_name set $sqldata $where";//生成SQL語句
/*本地調用連接方法*/
$result=$this->query($sql); /*本地調用query執行方法*/
$this->close(); /*本地調用close方法,關閉數據庫*/
if($result)
{ return true;}
else
{ return false;}
}
/*
*刪除操作
*方法名:Del_Sql(表名,條件)
*/
public function Del_Sql($table_name,$where='')
{
$sql="delete from $table_name $where";
/*本地調用連接方法*/
$result=$this->query($sql); /*本地調用query執行方法*/
$this->close(); /*本地調用close方法,關閉數據庫*/
if($result)
{ return true;}
else
{ return false;}
}
/*
*清空表
*方法名:Trun_Sql(表名)
*/
public function Trun_Sql($table_name)
{
$sql="TRUNCATE TABLE $table_name";
/*本地調用連接方法*/
$result=$this->query($sql); /*本地調用query執行方法*/
$this->close(); /*本地調用close方法,關閉數據庫*/
if($result)
{ return true;}
else
{ return false;}
}
/*
* 釋放查詢結果
*/
function Count($table_name='',$where='')
{
$sql="select count(*) from $table_name $where";
$result=$this->SqlQuery($sql);
return $result;
}
/*
* 釋放查詢結果
*/
function free()
{
@mysql_free_result($this->connect());
}
/*
* 析構函數
*/
function __destruct()
{
}
}
?>