[PHP-users 33862] Re: oci_connect()の2回目以降の接続ハンドル

eijun eijun @ hal.ne.jp
2008年 7月 17日 (木) 23:19:15 JST


北村です。

経過報告です。

> MIRACLE LINUX One V4.0-Asianux Inside for x86-64

(中略)

> ませんね。
> と思って、oci8のパッケージをアップデートしてみましたが、これまでと変わら
> ず、コネクトのたびに新しいリソースIDが返ってきます。

oci8だけではなく、SP2を当ててみましたが、現象は変わりませんでした。


その後、テストコードで色々試してみて、面白い(というか変な)規則性を発見
しました。

単純にoci_connect()をループさせた場合には、

<?php
 for ($i=0;$i<10;$i++){
   $conn = oci_connect("user", "password", "tns");
   echo $i+1 . "つ目 " . $conn . "<br />";
 }
?>

1つ目 Resource id #3
2つ目 Resource id #5
3つ目 Resource id #7
4つ目 Resource id #9
5つ目 Resource id #11
6つ目 Resource id #13
7つ目 Resource id #15
8つ目 Resource id #17
9つ目 Resource id #19
10つ目 Resource id #21

と、IDが1つおきになります。

<?php
 for ($i=0;$i<10;$i++){
   $conn = oci_connect("user", "password", "tns");
//----------------
   $sql=mb_convert_encoding("select * from testtable","UTF-8","EUC");
   $stmt = oci_parse($conn,$sql);
   $error=oci_execute($stmt);
//----------------
   echo $i+1 . "つ目 " . $conn . "<br />";
 }
?>

とクエリを投げる処理を入れると

1つ目 Resource id #3
2つ目 Resource id #6
3つ目 Resource id #9
4つ目 Resource id #12
5つ目 Resource id #15
6つ目 Resource id #18
7つ目 Resource id #21
8つ目 Resource id #24
9つ目 Resource id #27
10つ目 Resource id #30

と、IDが2つおきになります。

ますますわからなくなってきました。(汗


PHP-users メーリングリストの案内