Я пытаюсь написать код с несколькими классами, у которого будет много подключений / запросов к БД.
Мой вопрос: подключается ли PDO к базе данных, как только будет выполнена следующая строка, и она будет оставаться подключенной, пока не будет закрыта?
$pdo = new PDO($dsn, $user, $pass, $options);
Или он ожидает, пока мы не выполним следующее подключение, например:
$stmt = $pdo->prepare('SELECT * FROM users WHERE id = ?');
$stmt->execute([$email]);
$user = $stmt->fetch();
// Closing connection
$stmt = null;
Если он не подключается сразу, когда мы делаем new PDO()
, тогда я могу легко сделать переменную $pdo
глобальной и использовать ее в каждом классе, в противном случае мне нужно подключиться в каждом классе отдельно с помощью метода __construct()
, а затем закрыть соединение по методу __destruct()
. (я до сих пор не уверен, что это лучший способ повысить производительность)
P.S. Нужно ли нам также установить $pdo = null
, чтобы закрыть соединение? или $stmt = null
достаточно?