[PHP-users 32819] Re: ocifetchinto関数の置き換え

katsu2000x @ gmail.com katsu2000x @ gmail.com
2007年 11月 6日 (火) 14:33:23 JST


さいとうです。

$col にfalseが入るためにwhile文が終了するのですから、その後に$colを参照してもダメでしょう。

$col を他にコピーしてあげて、それを参照するようにすれば解決するんじゃないでしょうか。

非推奨関数についてはできれば使わない方が良いんでしょうけれど、バージョンアップした時にトラブルがあることを想定された方がいいと思いますよ。
絶対にバージョンアップなんて行わないならいいですが(本当はダメだけど)、苦労するのは他ならぬ自分だと思うので。

6 Nov 2007 14:02:34 +0900 に
mak_mura @ mail.goo.ne.jp<mak_mura @ mail.goo.ne.jp> さんは書きました:
> はじめまして、村上と申します。
>
> 数年前に開発したPHP4+Oracle8(8.1.7)のプログラムを
> 現在、PHP5+Oracle10g(10.2.0)に置き換えしております。
>
> DBデータ参照でocifetchintoを利用していたのを
> PHPマニュアルを拝見するとこの関数は非推奨となっており
> 代わりに推奨されるものは、oci_fetch_array() ・・・と
> なっていましたので下記のように変更しました。
>
> ■変更前
> while(OCIFetchInto($stmt,&$col,OCI_ASSOC)){
> ・・・・・・・
> }
>> ■変更後
> while($col=oci_fetch_array($stmt,OCI_ASSOC)){
> ・・・・・・・
> }
>
> 変更前は、while外で$col["XXXX"]で値に参照できていたのですが
> 変更後はwhile内でしか値に参照できませんでした。
>
> 以前のようにwhile外でも値を参照する場合には
> どのような方法がありますでしょうか?
>
> また、非推奨関数は今後のPHPバージョンではサポートされない
> などの理由で使用しないほうがいいんでしょうか?
>
> よろしくお願い致します。


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