I've had situations where database connections appeared to persist following php execution. So, now, my __destructor function explicitly contains a $cxn->close(). It hurts nothing, and helps avoid memory leaks.
(PHP 5, PHP 7, PHP 8)
mysqli::close -- mysqli_close — Закрывает ранее открытое соединение с базой данных
Объектно-ориентированный стиль
Процедурный стиль
Закрывает ранее открытое соединение с базой данных.
Открытые непостоянные соединения MySQL и наборы результатов автоматически закрываются при уничтожении их объектов. Явное закрытие открытых соединений и освобождение наборов результатов не обязательно. Однако рекомендуется закрыть соединение, как только скрипт завершит выполнение всех своих операций с базой данных, если ему ещё предстоит большая обработка после получения результатов.
mysql
Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect() или функция mysqli_init().
Функция всегда возвращает true
.
Версия | Описание |
---|---|
8.0.0 |
Функция теперь возвращает значение true .
Ранее она возвращала значение false в случае возникновения ошибки.
|
Пример #1 Пример использования mysqli::close()
Объектно-ориентированный стиль
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$result = $mysqli->query("SELECT Name, CountryCode FROM City ORDER BY ID LIMIT 3");
/* Закройте соединение, как только оно становится ненужным */
$mysqli->close();
foreach ($result as $row) {
/* Обработка данных, полученных из базы данных */
}
Процедурный стиль
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");
$result = mysqli_query($mysqli, "SELECT Name, CountryCode FROM City ORDER BY ID LIMIT 3");
/* Закройте соединение, как только оно становится ненужным */
mysqli_close($mysqli);
foreach ($result as $row) {
/* Обработка данных, полученных из базы данных */
}
Замечание:
mysqli_close() не закрывает постоянные соединения. Для получения подробностей смотрите руководство по persistent connections.
I've had situations where database connections appeared to persist following php execution. So, now, my __destructor function explicitly contains a $cxn->close(). It hurts nothing, and helps avoid memory leaks.