php單例模式實現資料庫類

來源:互聯網
上載者:User

標籤:oca   訪問   username   static   執行個體   常用   控制   軟體設計   資料   

  實現單例模式:單例模式是一種常用的軟體設計模式。在它的核心結構中只包含一個被稱為單例的特殊類。通過單例模式可以保證系統中一個類只有一個執行個體。

  單例模式的邏輯:類裡面聲明一個靜態方法和變數,靜態變數用來儲存唯一的執行個體,靜態方法作為類向外的唯一的介面,並在裡面做判斷,當靜態變數有執行個體時候直接返回,沒有則new一個執行個體賦值在靜態變數裡面。建構函式裡面放連結資料庫的操作,因為靜態方法中實現了控制了只執行個體化一次,所以達到只連結資料庫一次。在類外部存取靜態方法;

  簡單類如下:

 1     class Con_db{ 2         private static $dbObj = null; 3         private $con; 4         private $result; 5         private $row; 6         private $newsItem; 7         /** 8          * 建構函式 9          * @param [type] $host     [資料庫地址]10          * @param [type] $username [資料庫名稱]11          * @param [type] $psw      [資料庫密碼]12          * @param [type] $database [資料庫]13          */14         private function __construct($host,$username,$psw,$database){15             $this->con = mysql_connect($host,$username,$psw);16             if(!$this->con){17                 die("連結失敗");18             }19             mysql_set_charset("utf-8");20             mysql_select_db($database);21         }22         /**23          * 擷取一次性對象24          * @return 執行個體對象25          */26         public static function getInstance($host,$username,$psw,$database){27             if(is_null(self::$dbObj)){28                 self::$dbObj = new self($host,$username,$psw,$database);29             }30             return self::$dbObj;31         }32 33         /**34          *     資料庫查詢語句35          */36         private function query($sql){37             if($sql){38                 $this->result = mysql_query($sql);39                 if($this->result && mysql_num_rows($this->result)){40                     return $this->result;41                 }else{42                     return false;43                 }44             }else{45                 die("必須填寫查詢語句!");46             }    47         }48         /**49          * 查詢多條語句50          * @param $SQL 查詢語句51          * return string;52          */53         private function getAll($sql){54               $this->result = mysql_query($sql);55           if($this->result && mysql_num_rows($this->result)){56               $this->newsItem = array();57             while($this->row = mysql_fetch_assoc($this->result)){58               $this->newsItem[] = $this->row;59             }60           }61           return $this->newsItem;62         }63         /**64          * 查詢一條語句65          * @param $SQL 查詢語句66          * return string;67          */68         private function getone($sql){69               $this->result = mysql_query($sql);70               if($this->result && mysql_num_rows($this->result)){71                return $this->row = mysql_fetch_assoc($this->result);72             }73         }74     }75     $db = Con_db::getInstance("localhost","root","root","szwengdo_com");76     $sql = "select * from wd_cases";77     $row = $db->getone($sql);78     var_dump($row);    

    第一次研究,希望改正!!

php單例模式實現資料庫類

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.