mysql_pconnect

  • Автор темы Автор темы DIS
  • Дата начала Дата начала

DIS

Guest
mysql_pconnect

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

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

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

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

Вопросы:
1. Как же тогда закрыть постоянное соединение?

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

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

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

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

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

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

-~{}~ 20.04.05 20:27:

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

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

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


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

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