複数のPostgreSQL DBに接続でpg_pconnect()を利用した場合、前の接続情報が引き継がれたような動作をする。 実際、別ファイルでpg_pconnect()でDB接続情報を変更しても、最初のクエリだけ前DB接続情報が引き継がれてしまう症状が発生。
・pg_pconnect()は、Apacheプロセスが持続される ・pg_pconnect()は、pg_close() によって閉じられない ・持続的接続は、スクリプト実行終了時にも閉じられない ・持続的接続の有効は、php.ini の pgsql.allow_persistent を「ON」(デフォルト) ・pg_connect()とpg_pconnect()はお互いの情報を引き継がない
一度のスクリプトで接続先を必ず変更したい場合「PGSQL_CONNECT_FORCE_NEW」を利用するのがよい(恐らく別プロセスで処理される)。
pg_pconnect('DB接続情報', PGSQL_CONNECT_FORCE_NEW);