Проверьте, существует ли соединение с mySQL или позвольте Apache сделать это - PullRequest
1 голос
/ 26 апреля 2020

Я создал функцию для подключения к БД в php:

function fn_connect($is_write = false)
{
    $host = '127.0.0.1';
    $db = 'name_db';

    if ($is_write) {
        $user = 'user_write';
        $pwd = 'password_write';
    } else {
        $user = 'user_read';
        $pwd = 'password_read';
    }

    $conn = new mysqli($host, $user, $pwd, $db);

    if ($conn->connect_error) {
        die('The database is not available. Please, try again later.');
    }

    return $conn;
}

Когда мне нужно подключиться, я вызываю его (и закрываю) вот так

$conn = fn_connect(true);

$stmt = $conn->prepare($q);
$stmt->execute();
....
$stmt->close();

$conn->close();

Я подумал, что будет хорошей идеей проверить, существует ли соединение, таким образом, я полагаю, я сохраняю подключение к БД каждый раз ни за что, например:

if (!isset($conn)) $conn = fn_connect(true);

$stmt = $conn->prepare($q);
$stmt->execute();
....
$stmt->close();

if (isset($conn)) $conn->close();

Это хорошая идея? Хорошая практика? Должен ли я просто подключиться нормально и позволить Apache / PHP сделать все остальное (не нужно ничего проверять)?

1 Ответ

1 голос
/ 26 апреля 2020

Это хорошая практика и хороший стиль, чтобы проверить соединение, прежде чем позволить php попытаться получить или отправить данные.

Что не является хорошим стилем, так это использование d ie в вашем соединении, потому что он оставляет поврежденную страницу.

Лучше создать страницу так, чтобы она работала даже при разрыве соединения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...