单例数据库类方法

时间:2013-07-31 16:48:37

标签: php mysqli singleton

我试图为单例数据库类编写query()方法。我有这个,但它还没有飞行,正在寻找一些灵感。

<?php
class Database
{
 static private $instance = null;
 protected $mysqli;

 static public function getInstance()
 {
     if (null === self::$instance) {
         self::$instance = new self;
     }
     return self::$instance;
 }

 private function __construct(){
        if(!$this->mysqli = new mysqli('localhost','user','pass','db'))
            throw new Exception('Error - Database connection');
 }

 public function query($query) {
    while ($this->mysqli->query($query))
    {
        $row = $this->mysqli->fetch_assoc();
    }
    return $row; // loop through array
 }

 private function __clone(){}

}
?>

我不完全确定我是否走正确的道路。 mysqli会在这种情况下工作吗? 例如,Mysqli类已经有一个query()方法作为其类的一部分。我在这里引入命名空间冲突?

我的查询方法可以处理任何类型的SQL语句,即。

示例客户端代码:

$DB = Database::getInstance();
$DB->query("SELECT * FROM t");
$DB->query("DELETE FROM t WHERE id=2");
$DB->query("UPDATE u SET col = 'random' WHERE id=4");

0 个答案:

没有答案