Mysql數據庫操作類

<?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()
    {

    }

}

?>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章