Как запретить подключение к бд более 1 раза? class DB public static $mysqli private $connect = true function __construct() if ($this->connect) $mysqli = new mysqli($this->host, $this->user, $this->password, $this->db) $mysqli->set_charset("utf8") $this->mysqli = $mysqli $this->connect = false
При каждом вызове наследников класса DB происходит новое подключение к бд, как это предотвратить [Решение Мой косяк, по невнимательности вызывал класс несколько раз, из-за чего и возникла данная ошибка.
Чтобы предотвратить повторное подключение к базе данных при каждом вызове наследников класса DB, можно использовать статическую переменную, чтобы хранить уже существующее подключение. Вот как можно изменить код:
class DB public static $mysqli private static $connected = false function __construct() if (!self::$connected) $this->mysqli = new mysqli($this->host, $this->user, $this->password, $this->db) $this->mysqli->set_charset("utf8") self::$mysqli = $this->mysqli self::$connected = true } else $this->mysqli = self::$mysqli
}
Теперь при каждом вызове наследников класса DB будет создаваться новый объект mysqli только при первом вызове, а затем будет использоваться уже существующее подключение.
Чтобы предотвратить повторное подключение к базе данных при каждом вызове наследников класса DB, можно использовать статическую переменную, чтобы хранить уже существующее подключение. Вот как можно изменить код:
class DBpublic static $mysqli
private static $connected = false
function __construct()
if (!self::$connected)
$this->mysqli = new mysqli($this->host, $this->user, $this->password, $this->db)
$this->mysqli->set_charset("utf8")
self::$mysqli = $this->mysqli
self::$connected = true
} else
$this->mysqli = self::$mysqli
}
Теперь при каждом вызове наследников класса DB будет создаваться новый объект mysqli только при первом вызове, а затем будет использоваться уже существующее подключение.