萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> MySQL數據庫類的定義

MySQL數據庫類的定義

  俗話說“好的開始是成功的一半”,而PHP+MySQL項目中數據庫的操作是重點之一,能否簡化數據庫操作程序的編寫,就成了影響工作效率的關鍵之一。

  所以小陽並不是一開始就做頁面,而是先建立一個“dbclass.php”文件,開始編寫操作MySQL數據庫的類“dbClass”。即在“dbclass.php”中編寫以下程序:

  $db_username="myusername"; //連接數據庫的用戶名

  $db_password="mypassword"; //連接數據庫的密碼

  $db_database="mydatabase"; //數據庫名

  $db_hostname="localhost"; //服務器地址

  class dbClass{ //開始數據庫類

  var $username;

  var $password;

  var $database;

  var $hostname;

  var $link;

  var $result;

  function dbClass($username,$password,$database,$hostname="localhost"){

  $this->username=$username;

  $this->password=$password;

  $this->database=$database;

  $this->hostname=$hostname;

  }

  function connect(){ //這個函數用於連接數據庫

  $this->link=mysql_connect($this->hostname,$this->username,$this->password) or die("Sorry,can not connect to database");

  return $this->link;

  }

  function select(){ //這個函數用於選擇數據庫

  mysql_select_db($this->database,$this->link);

  }

  function query($sql){ //這個函數用於送出查詢語句並返回結果,常用。

  if($this->result=mysql_query($sql,$this->link)) return $this->result;

  else {

  //這裡是顯示SQL語句的錯誤信息,主要是設計階段用於提示。正式運行階段可將下面這句注釋掉。

  echo "SQL語句錯誤: $sql

  錯誤信息: ".mysql_error();

  return false;

  }

  }

  /*

  以下函數用於從結果取回數組,一般與 while()循環、$db->query($sql) 配合使用,例如:

  $result=query("select * from mytable");

  while($row=$db->getarray($result)){

  echo "$row[id] ";

  }

  */

  function getarray($result){

  return @mysql_fetch_array($result);

  }

  /*

  以下函數用於取得SQL查詢的第一行,一般用於查詢符合條件的行是否存在,例如:

  用戶從表單提交的用戶名$username、密碼$password是否在用戶表“user”中,並返回其相應的數組:

  if($user=$db->getfirst("select * from user where username=''$username'' and password=''$password'' "))

  echo "歡迎 $username ,您的ID是 $user[id] 。";

  else

  echo "用戶名或密碼錯誤!";

  */

  function getfirst($sql){

  return @mysql_fetch_array($this->query($sql));

  }

  /*

  以下函數返回符合查詢條件的總行數,例如用於分頁的計算等要用到,例如:

  $totlerows=$db->getcount("select * from mytable");

  echo "共有 $totlerows 條信息。";

  */

  function getcount($sql){

  return @mysql_num_rows($this->query($sql));

  }

  /*

  以下函數用於更新數據庫,例如用戶更改密碼:

  $db->update("update user set password=''$new_password'' where userid=''$userid'' ");

  */

  function update($sql){

  return $this->query($sql);

  }

  /*

  以下函數用於向數據庫插入一行,例如添加一個用戶:

  $db->insert("insert into user (userid,username,password) values (null,''$username'',''$password'')");

  */

  function insert($sql){

  return $this->query($sql);

  }

  function getid(){ //這個函數用於取得剛插入行的id

  return mysql_insert_id();

  }

  }

  /*

  主要函數就是這些,如果你自己有另外的需要,也可以自己添加上去。

  因為凡使用該類的都必須連接數據庫,下面就連接並選擇好數據庫吧:

  */

  $db=new dbClass("$db_username","$db_password","$db_database","$db_hostname");

  $db->connect();

  $db->select();

  ?>

  OK,數據庫的類已經寫好了,它不但可以用在目前這個項目中,其他項目的同樣適用!只要把“dbclass.php”復制過去就行了。要用本文件的時候只要用語句“include_once("dbclass.php")”就行,具體語法在編寫數據庫類時已有舉例,不再贅述。

  寫好數據庫的類後,數據庫的操作就方便多了,項目的制作已跨出了重要的第一步。

copyright © 萬盛學電腦網 all rights reserved