<?php
class DB
{
private static $ourInstance;
private static $config = [
'host' => 'localhost',
'username' => 'core',
'password' => '123456',
'dbname' => 'core',
'driver' => 'mysql',
];
private $db;
public $countQuery = 0;
private function __construct(PDO $db)
{
$this->db = $db;
}
public static function getInstance()
{
if (self::$ourInstance == null) {
$config = self::$config;
$db = new PDO(
$config['driver'].':host='.$config['host'].';dbname='.$config['dbname'],
$config['username'],
$config['password'],
[
PDO::ATTR_DEFAULT_FETCH_MODE,
PDO::FETCH_ASSOC,
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
]
);
self::$ourInstance = new self($db);
}
return self::$ourInstance;
}
public function __call($name, $arguments)
{
return call_user_func_array([$this->db, $name], $arguments);
}
public function query($query, $params = [])
{
$this->countQuery++;
if (count($params)) {
$sth = $this->db->prepare($query);
$sth->execute($params);
return $sth;
} else {
return $this->db->query($query);
}
}
public function count($query, $params = [])
{
return $this->query($query, $params)->fetch(PDO::FETCH_OBJ)->count;
}
}
$db = DB::getInstance();
?>