[PHP-users 7721] DBの持続的接続について

相良 聡志 php-users@php.gr.jp
Wed, 29 May 2002 11:23:55 +0900


こんにちは。
相良と申します。

以前、DBデータの取得方法に関しての問合せをさせて頂き、
皆様のおかげで無事解決をしました。その節はありがとうございました。

この度はDB接続において、OCIPLogonを利用した持続的接続を試しています。

<質問内容>
OCIPLogonを利用すると、確かにDBのセッションは持続されます。
しかし、一度確立したセッションを再利用する方法が分かりません。
どなたか、お知恵を貸して下さい。
よろしくお願いします。

<環境>
WEBサーバ(Miracle Linux2.0)
Net8
Apache1.3.24
PHP4.1.2
DBサーバ(WindowsNT4.0 SP5)
Oracle7.3.3.0.0

<状況>
DBからデータを取得するページ(画面orモジュールのことです)を
2ページ作成して、1ページ目から2ページ目を呼出します。
この2ページ目でのDB接続を1ページ目のDBセッションを再利用したいのです。

−1−
下記のソースを使用してDB接続を行うとDBセッションが1つ確立されます。(1ページ目)
2ページ目でOCIPLogonを行わず、OCIParseを発行すると以下のエラーが発生します。
Warning: Supplied argument is not a valid OCI8-Connection resource in /usr/local/apache/htdocs/w_loginchk.php on line 9

−2−
状況1の2ページ目アクセスの際にOCIPLogonを再度行うと、
もう1つDBセッションが確立され、計2つのセッションが発生してしまいます。

−3−
初めてのOCIPLogonのIDをセッション情報に格納して(1ページ目)、
2ページ目でその情報を元にOCIParseを行うと状況1と
同じ状態になってしまいます。


<参考ソース>
<?
	$conn = OCIPLogon("USER", "PASS", "CONNECT_STR");
	$sql = "select CODE,NAME from TABLE_NAME";
	$sql = OCIParse($conn, $sql);
	OCIExecute($sql);
	while(OCIFetch($sql))
	{
		$user_code = OCIResult($sql, "CODE");
	}
?>

※※※※※※※※※※※※※※※※※※※※※※※※※

相良 聡志
E-mail:sagaras@cg.tecsys.co.jp

※※※※※※※※※※※※※※※※※※※※※※※※※