Как правильно организовать логику подключения к базе (обучающий пример)

Я обучаюсь php. Мне необходимо понять некоторые моменты. 1.Подключение к базе можно оставлять открытым всегда или можно отключение и подключение к базе вызывать по событию (при клике на кнопку к примеру или при записи поля в базу)?

 <?php
//подключение к Мускул объекто=ориентированный
$servername = "localhost";// имя сервера
$username = "polet";// имя юзера к базе
$password = "polet123";// пароль к базе
$dbname = "test"; // база имя

// Создать соединение
$conn = new mysqli($servername, $username, $password , $dbname); // в переменную comm помещаем переменные из мускул и далее работаем с ней

// Проверяем подключение
if ($conn->connect_error) {
    die("Ошибка " . $conn->connect_error);// выводим сообзение об ошибке и саму ошибку
}
echo "Успешно подключились к базе";//успешно

// sql запрос для создания таблицы имя фамилия почта дата регистр
// типы данных для запроса https://html5css.ru/sql/sql_datatypes.php
//не забываем про имя базы
$sql = "CREATE TABLE test(
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    firstname VARCHAR(30) NOT NULL, 
    lastname VARCHAR(30) NOT NULL,
    email VARCHAR(50),
    reg_date TIMESTAMP
    )";


if ($conn->query($sql) === TRUE) {
    echo "Таблицы созданы";//таблицы созданы
} else {
    echo "Ошибка " . $conn->error;//ощибка
}


//Отключаемся от базы
$conn->close();
?>

Ответы (1 шт):

Автор решения: Jour
<?php

// Простой способ сделать глобально доступным подключение в БД
function pdo(): PDO
{
    static $pdo;

    if (!$pdo) {
        $config = include __DIR__.'/config.php';
        // Подключение к БД
        $dsn = 'mysql:dbname='.$config['db_name'].';host='.$config['db_host'];
        $pdo = new PDO($dsn, $config['db_user'], $config['db_pass']);
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }

    return $pdo;
}

https://habr.com/ru/post/665602/ Можно примерно так организовать

→ Ссылка