[PHP-users 3666] Re: pg_fetch_rowと配列の効率的な使い方

KAWAI,Takanori php-users@php.gr.jp
Mon, 19 Nov 2001 17:32:41 +0900


川合孝典です。

----- Original Message ----- 
From: "Osamu Shigematsu" <shige@ravi.ne.jp>
To: <php-users@php.gr.jp>
Sent: Monday, November 19, 2001 4:43 PM
Subject: [PHP-users 3664] Re: pg_fetch_rowと配列の効率的な使い方


> 重松です。
> 
> ざっと見た感じ、
> 
> >      do {
> >        @$row = pg_Fetch_Row ($result, $i);
> >        if ($row) {
> >          for($k=0;$k<20;$k++) { $sRes .= $row[$k];}
> >          $sRes .= '<BR>';
> >          $i++;
> >        }
> >      } while ($row);
> 
> の部分がキモでしょうけど、
> 
> while(@$row = pg_fetch_row($result,$i++))
>   $sRes .= implode('<br />',$row);
> 
> とすれば良いのではないでしょうかね。
なるほど。ただ1つ1つの要素にアクセスしてという部分を
作りたかったので内部のforはこのままにはしたいと思っています。
後置の++は書き換えます。

> たとえば、意味のない後置の ++ 演算子だとか、複数回の $row 
> の判定など、ものすごく冗長だし、無駄が多い書き方を故意にして
>いる気がしますが。
これもあわせて作りとして稚拙なのは認めますが、故意では
ありません。消化しきらずに書いていることもありますが、元ネタ
はこちらのソースを参照させていただきました。

PHP4で作るWeb-DBシステム
第5回 実践編:データベースアプリケーションの作成 後編 
http://www.atmarkit.co.jp/flinux/php4/php4_5/php4_2.html
 の「PostgreSQLの場合」にあるリスト

> 普通は、こういう速度よりも、開発速度、保守のしやすさから、
> pg_fetch_array() を使うと思いますし、さらにいえば、
> DB に依存しないように抽象化した class library を使うのが
> 普通だと思います。
別のスレッドを立てて聞いた方がよいかと思っていたのですが、
PHPLIBのクラスライブラリと個別データベース用の関数と
どちらのほうがといえばやはりPHPLIBということなのでしょうか?

===================================================
川合 孝典 (Hippo2000)
   DBI日本語メーリングリスト管理人、Kansai.pm所属
   kwitknr@cpan.org GCD00051@nifty.ne.jp
   http://member.nifty.ne.jp/hippo2000
   http://www.hippo2000.net/
===================================================