2015-04-03 2 views
2

сейчас у меня есть один файл connect.php т.д .:Когда мне нужно закрыть соединение mysqli (Database)?

$mysql_host = ""; 
$mysql_database = ""; 
$mysql_user = ""; 
$mysql_password = ""; 

$con = new mysqli(
    $mysql_host, 
    $mysql_user, 
    $mysql_password, 
    $mysql_database 
); 

// Check connection 
if ($con->connect_error) { 
    die("Connection failed: " . $con->connect_error); 
} 

в любом другом файле PHP, который использует MySQL запросов, я использую «включать„connect.php“;»

Для экземпляра W3Schools они создают для каждого запроса новое соединение, а затем закрывают его после использования. см. здесь: w3schools.com: Я не уверен, что они делают это только для демонстрации цели, или если это лучший способ сделать это таким образом.

Вопрос в том, что является лучшей практикой? Мне нужно закрыть соединение после каждого выбора, а затем установить новый для следующего запроса? Если нет, когда мне, наконец, нужно закрыть соединение? В конце файла php со всеми запросами?

Thanks

ответ

4

Цитата с сайта php.net.

«Открытые соединения (и аналогичные ресурсы) автоматически уничтожаются в конце выполнения сценария. Однако вы должны закрыть или освободить все соединения, наборы результатов и дескрипторы операторов, как только они больше не требуются. поможет быстрее возвращать ресурсы для PHP и MySQL ».

Источник: http://php.net/manual/en/mysqli.close.php

EDIT: Вы спросили, когда, извините, что Способность читать. Надеюсь, это все равно будет полезно.

2

Завершите соединение, когда вы закончите использовать его для этой страницы. Если у вас есть, скажем, блог, кнопка, которую вы используете для публикации, запустит код, который откроет соединение, выполните некоторую работу с соединением (например, добавив его в свой дБ и показывая его на странице), а затем он закроет соединение, чтобы он не был открыт больше, чем нужно. Но когда вы снова нажмете кнопку, он начнет процесс, используя ресурсы только по мере необходимости.

0

Лучшая практика заключается в использовании функции закрытия в footer.php

+0

Не уверен в этом. Если вы закончили с SQL в header.php, тогда вам следует закрыть SQL. –

+0

Затем вам нужно написать mysqli_close() снова и снова в каждом файле. Скорее поместите его в файл нижнего колонтитула. – varunsinghal

+0

Как уже упоминалось в @Thais, PHP автоматически уничтожает открытые соединения в конце выполнения скрипта. Поэтому закрытие mysql в самом конце вашего скрипта немного избыточно. Закрытие соединения позволяет перераспределить ресурсы. –

Смежные вопросы