[PHP-users 10419] pg_fetch_objectのエラー
Genshirou Taki
php-users@php.gr.jp
Mon, 30 Sep 2002 12:29:27 +0900
g_takiといいます。
Postgres 7.2.2
GCC 3.2
Solaris8(IA)
PHP-4.2.2
で使用しています。
$numrow = pg_numrows($result)
の数だけ、pg_fetch_object($result,$i)を実行したいのですが、
1回しか実行できません。
現象:
以下のようなテーブルにおいて、
create table cart_box(
session_id text,
item_id integer,
counter integer,
total integer,
primary key(session_id, item_id)
);
以下のような処理を実行させました
$sql = "SELECT * FROM cart_box WHERE session_id='".$PHPSESSID."' ORDER BY item_id";
$result = execsql($sql); //グローバル変数としてresource を返す自作関数
$numrow = pg_numrows($result);
//ここで$numrowは上記SELECTで得られる行数が返ってくることを確認済み
$i=0;
while($data = pg_fetch_object($result,$i)){
//処理
$i++;
}
しかし、このループは一回しか廻ってくれません。
2回目に入った時点で以下のような警告がでてしまいます。
Warning: Unable to jump to row 1 on PostgreSQL result index 9
pg_fetch_objectのマニュアルを見ると、2番目の引数はオプションになるよう
なので、
while($data = pg_fetch_object($result)){
としましたが、警告が表示されないだけで、結果は変わりませんでした。
同じような処理を他でも行っているのですが、
pg_fetch_object()でのエラーは出たことが無く、
原因がわかりません。
怪しいと疑う点などアドバイスいただけないでしょうか?