2014-04-06 3 views
2

pgsql.allow_persistentOff으로 변경하고 /etc/php.ini으로 변경하고 아파치를 다시 시작했습니다.비 지속성 Pg 연결

이제 두 개의 연속 된 pg_connect에 대해 동일한 PG 처리가 나타납니다.

Array 
(
[0] => Resource id #14 
[1] => Resource id #14 
) 

제 질문은 PHP가 여전히 영구 연결을 사용하고 있으며 대답이 '예'일 경우 어떻게해야하는지입니다.

+0

동일한 스크립트 내에서 두 개의 연속 연결 *이 실행되지만, 맞습니까? 동일한 스크립트를 반복적으로 실행하면 각 실행마다 다른 연결이 반환됩니까? 'SELECT pg_backend_pid()'는 같은 값을 반환합니까? –

+0

@CraigRinger 예, 이것은 동일한 스크립트 실행 내입니다. 스크립트를 반복적으로 실행하면'pg_backend_pid'가 변경되지만 동일한 실행 내에서 동일하게 유지됩니다. –

+0

PHP는 여전히 주어진 스크립트 실행 내에서 * 연결을 캐시합니다. 다른 연결 옵션을 사용하면 다른 결과가 발생합니까? –

답변

1

주어진 스크립트 내에서 PHP 연결을 캐시하므로 같은 매개 변수를 사용하는 여러 연결 호출이 동일한 연결을 반환합니다.

영구 연결과 달리이 캐싱은 단일 스크립트 실행에서만 발생합니다.

발견 한대로 강제로 새 플래그 -PGSQL_CONNECT_FORCE_NEW를 사용하여 캐싱을 비활성화 할 수 있습니다.