Ответы пользователя по тегу PHP
  • Можно ли соединиться с бд один раз?

    @Excent163
    Если я правильно понял вопрос, то обойти создание нового подключения можно с помощью паттерна Singleton.
    Выглядит это так:
    class Db
    {
        private $pdo;
    
        private static $instance;
    
        private function __construct()
        {
            $dbOptions = (require __DIR__ . '/../../settings/setting.php')['db'];
            
            $this->pdo = new PDO(
                'mysql:host=' . $dbOptions['host'] . ';dbname=' . $dbOptions['dbname'],
                $dbOptions['user'],
                $dbOptions['password']
            );
            $this->pdo->exec('SET NAMES UTF8');
        }
    
        public static function getInstance(): self
        {
            // если объект подключения не создан и равен NULL
            if (self::$instance === null) {
                // то создается новый объект класса Db;
                self::$instance = new self();
            }
            // если подключение создано, просто возвращаем уже созданное подключение
            return self::$instance;
        }
    }

    Соответственно и подключение уже будет происходить через:
    Db::getInstance();
    Ответ написан
    1 комментарий