32 $dsn =
'mysql:dbname=' .
Env::$e->DB_DATABASE .
';host=' .
Env::$e->DB_HOST .
';port=' .
Env::$e->DB_PORT .
';charset=utf8mb4';
34 $this->dbh = new \PDO($dsn,
Env::$e->DB_USERNAME,
Env::$e->DB_PASSWORD, [\PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_OBJ]);
35 }
catch (\PDOException $e) {
37 exit($e->getMessage());
52 if (self::$instance ===
null) {
53 self::$instance =
new self($ignore_error);
57 self::$instance->dbh->query(
'SELECT 1');
58 }
catch (\PDOException $e) {
60 self::$instance =
new self($ignore_error);
73 self::$instance =
null;
81 throw new \RuntimeException(
'Clone is not allowed');
89 throw new \RuntimeException(
'Deserialization is not allowed');
Connect создает подключение к базе данных
static getInstance($ignore_error=false)
__construct($ignore_error=false)
Env класс управляющий, добавляющий или записывающий переменные среды
if(($dbh=Connect::getInstance(true) ->dbh) && $dbh->query("SHOW TABLES") ->fetchAll() && $dbh->query("SELECT COUNT(*) FROM `users`") ->fetchColumn()) if(!empty($_POST)) exit