[PHP-users 9117] DBの結果が二回目以降参照できない現象について

hiro php-users@php.gr.jp
Mon, 5 Aug 2002 15:41:11 +0900


hiroです。

タイトルにも有りますとおり
DBの結果が二回目以降参照できない現象について
皆様のお知恵を拝借いたしくこちらに、投稿いたします。

現象は
 A.php ファイル
    function Select{
            DBに接続して、Selectの結果を取得。
            $DBresult とします
            function A{
                    ここで
                    B.php ファイルの function Bの引数に渡します
                    function B( $DBresult );
            }
    }


  B.php ファイル
  function B( $DBresult ) {
        この$DBresultをさらにこのページのこの関数外の関数に渡します。
        (この関数内で使用する前にです。)
        つまり、B.php ファイルのfunction C に引数として渡します。
         function Cの結果 = function C( $DBresult );

            while( $rows = $DBresult->fetchRow() ) {
                print_r($rows);
                exit;
                とすると、表示が何もされなくなってしまいます。
            }

    }

    function C( DBresult ) {
            while( $rows = $DBresult->fetchRow() ) {
                #rows を使って何か処理を行います。
                このとき、$rows は参照しているだけです。
                もちろん DBresultもです
            }
    }


と、上記のような感じで処理を書いていたのですが
どうも、DBの結果をfetchRowもしくはfetchIntoした後に
もういちどどちらかを使用とすると
参照が出来なくなってしまうようなのですが
これにはなにか私の落ち度あるのでしょうか?
それとも、そういう使用なのでしょうか?

現在これは、ご覧のとおり
pearを使用しております。
DBはPostgre7.2.1 phpは4.2.2です。

この現象についてご存知の方。
アドバイス、お叱り何でも結構ですので
宜しくお願いいたします。