[PHP-users 6998] Re: DB データ取得と関数間の引数について

SHIMOOKA Hideyuki php-users@php.gr.jp
Fri, 19 Apr 2002 11:22:07 +0900


下岡です。

---- shin1 nomotoさん曰く...

>><現在までの確認状況>
>>1)DBから取得したデータの取得方法
>>1.ora_getcolumn($cursor,0)でデータを取得するとできますが、カラム名指定はできませんでした。
>>調べても記述方法が分からなかったので、ora_getcolumn($cursor,column1)のように記述してみました。
>
>oracle関数には、postgres関数のfetch_array的なものは無い
>のですね。

裏関数ですが、Ora_Fetch_Intoという関数があり、1レコード分の
結果を配列や連想配列の形で得ることができます。

http://www.pat.hi-ho.ne.jp/dimension/tips/tips_ura_ora.shtml

以下のスクリプトで、$modeの値が1の時に連想配列となります。

<?php
    if ($mode == "") $mode = "1";

    $conn = Ora_Logon( "scott@orcl", "tiger" );

    $cursor = Ora_Open($conn);
    $sql  = "SELECT * FROM emp ORDER BY empno";
    Ora_Parse($cursor, $sql);
    Ora_Exec($cursor );
    while($ret = Ora_Fetch_Into($cursor, &$arr, $mode)){
        echo "\$ret=$ret<br>";
        while (list($key, $val) = each($arr)) {
            echo "$key => $val<br>";
        }
        /* 連想配列をクリア */
        $arr = (array)$arr_tmp;
    }
    Ora_Close($cursor);
    Ora_Logoff($conn);
?>


-- 
H.Shimooka/shimooka@axissoft.co.jp