Подключение к базе данных singleton php, является ли этот код плохой практикой?

Я пытаюсь создать простой в использовании одноэлементный класс для подключения к базе данных mysql и выполнения запросов, код работает нормально, и я не знаю ' У меня не было никаких проблем с этим, но поскольку я новичок в ООП, мне интересно, является ли это плохой практикой или нет.

Вот класс

class Database {
private $databaseName = 'dbname';
private $host = 'localhost';
private $user = 'user';
private $password = 'pass'; 
private static $instance; //store the single instance of the database

private function __construct(){
    //This will load only once regardless of how many times the class is called
    $connection = mysql_connect($this->host, $this->user, $this->password) or die (mysql_error());
    $db = mysql_select_db($this->databaseName, $connection) or die(mysql_error()); 
    echo 'DB initiated<br>';
}

//this function makes sure there's only 1 instance of the Database class
public static function getInstance(){
    if(!self::$instance){
        self::$instance = new Database();
    }
    return self::$instance;     
}

public function connect() { 
    //db connection
} 
public function query($query) {
    //queries   
    $sql = mysql_query($query) or die(mysql_error()); 
    return $sql;
}

public function numrows($query) {
    //count number of rows  
    $sql = $this->query($query);
    return mysql_num_rows($sql);
}


}

//Intantiate the class
$database = Database::getInstance();

, и когда я хочу использовать этот класс, я бы сделал:

$query = "SELECT * FROM registrations";
echo $database->numrows($query);
$sql = $database->query($query);
5
задан matt 10 February 2012 в 11:58
поделиться