每次操作MySQL資料庫的時候,都要進行串連、選擇資料庫等重複的動作,何不將它封裝成一個類呢?這樣做就簡單了。
也許你會說,寫成函數就行了啊。不過,寫成一個類就封裝了資料庫的一些資訊,比如資料庫名、資料庫主機、資料庫使用者及密碼等。這樣,在某個需要操作MySQL的函數裡,就不用傳入這些資訊,直接傳入一個MySQL對象就可以了,是不是很方便?
很好,下面就是代碼:
下載: http://down.qiannao.com/space/file/pgtimes/share/2011/3/8/mysqlobj.php/.page
db_name = $dn; $this->db_user = $du; $this->db_pawd = $dp; $this->db_host = $dh; $this->db_charset = $dc; $this->db_collate = $do; } /** 解構函式 */ function __destruct() { if($this->isCon) $this->closeCon(); } /** 建立串連,沒有傳回值 */ function newCon() { if(!$this->isCon) { $this->link = mysql_connect($this->db_host,$this->db_user,$this->db_pawd) or die("無法建立資料連線
".mysql_error()); mysql_query("SET NAMES {$this->db_charset}"); $this->isCon = true; } } /** 關閉串連,沒有傳回值 */ function closeCon() { if($this->isCon) { mysql_close($this->link); $this->isCon = false; } } /** 執行SQL命令,輸入參數:SQL語句,傳回值:執行結果 */ function execute($sql) { if(!$this->isCon) $this->newCon(); $db_selected = mysql_select_db($this->db_name,$this->link) or die("開啟資料庫失敗
".mysql_error($this->link)); $result = mysql_query($sql, $this->link); return $result; } } ?>
亦可點我下載;
應如下建立一個MySQL對象
像如下使用:
newCon(); // 建立串連 $sql = "SELECT * FROM table"; // SQL語句 $result = $mysql->execute($sql); // 執行SQL查詢,並返回結果 $mysql->closeCon(); // 關閉串連 ?>
一定要在下一個newCon()之前關閉串連!
所以,請每次執行SQL查詢後,及時關閉串連(closeCon())!
由於每次建立MySQL對象都要傳入資料庫的一些資訊,而我們寫網站的時候這些資訊基本不會變,所以我們可以寫一個函數
把對MySQL資料庫的操作、資訊封裝成一個類後,自然有很多的好處,這個好處,在我以後的這些文章裡會有極大的體現。
轉自:http://blog.abreto.net/oa/php-mysql-class