mysql_pconnect

DIS

Guest
mysql_pconnect

http://ru3.php.net/manual/ru/function.mysql-pconnect.php

mysql_pconnect() работает аналогично mysql_connect() с двумя отличиями.

Во-первых, при соединении, функция пытается найти уже открытый (постоянный) указатель на тот же сервер с тем же пользователем и паролем. Если он найден, возвращён функцией будет именно он, вместо открытия нового соединения.

Во-вторых, соединение с SQL-сервером не будет закрыто, когда работа скрипта закончится. Вместо этого, оно останется рабочим для будущего использования (mysql_close() также не закрывает постоянные соединения)
Вопросы:
1. Как же тогда закрыть постоянное соединение?

2. У меня есть скрипт, который создаёт постоянное соединение. В этом скрипте вызывается функция в которой отдельно создаётся и закрывается временное соединение. так вот. так вот это соединение использует в качестве ссылки постоянное (которое раньше создаётся) и успешно его закрывает, что приводит к "пи...". могу я не закрывать временное соединение? или может как-нибудь по-умному это можно победить?:)
 

neko

tеam neko
а какой смысл использовать постоянные с непостоянными в перемешку?
 

Wicked

Новичок
2DIS, а ты хэндлер соединения явно указываешь? или просто вызываешь mysql_close() ?

2neko: для доступа к двум разным базам данных? :)
 

Кром

Новичок
>2neko: для доступа к двум разным базам данных?

Гениально. :)

DIS, на форуме уже достаточное количество раз эта тема затрагивалась. Можешь поискать, если тебе надо использовать mysql_pconnect(). Вот только вряд ли тебе это действительно нужно.
 

DIS

Guest
1. доступ к одной базе. но на то есть причины:
- функция, в которой создаётся временное соединение, используется другими скриптами, в большенстве из который другого соединения нет, а в скрипте с постоянным соединением действительно возможны запросы и к другим базам, но это не главное, а главное то, что запросы летят и до, и после использования функции с временным соединением.

2. хендлер указываю явно, но дело в том, что при создании временного соединения, php находит, что уже есть такое соединение (попадаются соединения с теми же парамертами) и в качестве ссылки на ресурс использует постоянное, но оно становиться временным и т.к. в функции стоит mysql_close(), то оно закрывается.

ну и всё-таки: как же закрывать постоянное соединение?

-~{}~ 20.04.05 20:27:

Вот только вряд ли тебе это действительно нужно.
при постоянном соединении повышается скорость работы моего скрипта, а при том, что этот скрипт выполяется около 15 МИНУТ, такое увеличение производительности весьма ощутимо.
 

Wicked

Новичок
DIS, ты уверен, что твой скрипт будет работать больше 16 минут при отречении от mysql_pconnect ?
 

DIS

Guest
Автор оригинала: Wicked
DIS, ты уверен, что твой скрипт будет работать больше 16 минут при отречении от mysql_pconnect ?
да. там

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

хотя ладно.. обойдусь mysql_connect


ну и всё же.. как же закрыть постоянное соединение?
 

DIS

Guest
Автор оригинала: Фанат
DIS, не пробовал ман почитать?
не пробывал по-серьёзному вчитываться.
а где почитал, там однозначно сказано "постоянное соединение не закрывается". ну может за исключением отстрела соединений разными ограничениями (по времени и т.п.)
Думал есть люди, которым не впадлу посказать.
 

confguru

ExAdmin
Команда форума
DIS

В мане все понятно описано, ты сам сейчас его процитировал.
 
Сверху