Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Авто-закрытие подключения


Автор: Muerto 28.8.2010, 14:24
Во многих местах говрится о том что в конце выполнения скрипта, подключение к базе данных закрывается...

Но вот как не странно играя два часа на моем виртуальном сервере Linux я был удивлен увидеть что типа too much connections
поскольку я не трудился закрывать в конце, ибо верил что в конце выполнения скрипта оно само все закроет...

Я тестирую свои разработки, и иногда выкидывает разные ошибки и обрывает скрипт, возможно это тоже влияет

Но в любом случае, те кто понимают, проясните этот вопрос...

Если в скрипте всегда ловить подключение при любой trigger error То эт сума сойти можно... думаю фрейм ворки так не работают имхо

Автор: overmetallist 28.8.2010, 14:28
Подключения, установленные функцией mysql_pconnect(), не закрываются автоматом. smile 
Код

<?php
   $conn = mysql_connect ("localhost", "username", "pass")
        or die ("Соединение не установлено!");
   print ("Соединение установлено!");
   mysql_close($conn);
?>

Автор: gta4kv 28.8.2010, 14:56
Цитата(PHP.net)

Note:

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling mysql_close().


Добавлено @ 14:59
Цитата

Подключения, установленные функцией mysql_connect(), не закрываются автоматом. 

потрясающие знания.

Автор: overmetallist 28.8.2010, 16:09
gta4kv так любишь меня хвалить smile 

Автор: Muerto 28.8.2010, 16:24
gta4kv, То что вы процитировали, я и читал давно, но все же вот при тестах наткнулся на такое...
Скрипт создате в начале Singleton db класса, и не закрывает его никогда в ручную , использую mysqli oop

Автор: gta4kv 29.8.2010, 00:41
С чего решил, что не закрывает?

Автор: Muerto 29.8.2010, 02:08
gta4kv, Читайте внимательно тему...
Я наткнулся на ошибку в моем сервере после работы в течении 2 часа тестирования кодов.
Показало too much connections , и все...
Значит само оно каждый раз нифига не закрывало...

Автор: gta4kv 29.8.2010, 11:21
Наверное потому, что mysqli и mysql разные вещи.

Цитата

You should always use mysqli_kill() function before mysqli_close() to actually close and free up the tcp socket being used by PHP.

Автор: Muerto 2.9.2010, 17:44
я использую 
Код

$this->conn_id->close();


Судя по примерам
http://php.net/manual/en/mysqli.kill.php
->kill убивает соединение
а
->close закрывает

Мне не ясно почему close не достаточно

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)