<?php namespace Core; use PDO; class Database { private static self $instance; protected static PDO $db; /** * Singleton. */ private function __construct() { mysql_select_db(Config::get('db_name'), mysql_connect(Config::get('db_host'), Config::get('db_user'), Config::get('db_password'))); mysql_query('SET NAMES utf8mb4'); } /** * Для совместимости со старыми функциями mysql_*. * @return Database */ public static function init(): Database { if (!isset(self::$instance)) { self::$instance = new static(); } return self::$instance; } /** * Новое подключение к БД. * @return PDO */ public static function pdoinit(): PDO { return new PDO( 'mysql:host=' . Config::get('db_host') . ';dbname=' . Config::get('db_name'), Config::get('db_user'), Config::get('db_password'), [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4", PDO::ATTR_STRINGIFY_FETCHES => false, PDO::ATTR_EMULATE_PREPARES => false, ] ); } }