0

我正在尝试为单例数据库类编写一个 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");
4

0 回答 0