[PHP-users 17140]Re: PostgreSQL関数でのストアドファンクションの戻り値の取得方法

Mashiki mashiki @ yanah.com
2003年 8月 4日 (月) 23:12:04 JST


 Mashikiです。

>じつはレンタルサーバーでの、仕様により、DBの管理は
>PhpPgAdmin 2.4.2 を使用しております。
>phpPgAdminの画面からクエリの発行をすると
>きちんと結果が表示されます。
>
>クエリ
>    select join_insert('test1','test2','test3',2,8);
>
>結果
>    join_insert
>    --------
>    100
>
>ですが、PHPのプログラムからのクエリ発行の結果リソースには
>0行になっています。
>この場合、通常のselect 文とは違う扱いになるのでしょうか?
>よろしくお願いいたします。

なるほど、「PhpPgAdmin」って、まったく知らないのですが、
想像するにwebサーバーからphpを利用してPostgreSQLを管理する
ツールですよね。

なら環境的には問題ないはずですよね。

ところで、アプリケーションからと、「PhpPgAdmin」は、おなじDB、
同じユーザーに接続されますよね。


>> また、ストアドプロシジャのインサート文をコメント化しても結果は変わら
>> ないでしょうか?

また、こちらの切り分け結果はいかがでしょうか?


CREATE FUNCTION join_insert (varchar,varchar,varchar,integer) RETURNS
integer AS '

DECLARE

mb ALIAS FOR $1;
pc ALIAS FOR $2;
nn ALIAS FOR $3;
sx ALIAS FOR $4;

BEGIN
/*
  insert into user_entry (mobile_mail,pc_mail,name,sex,entry_date)
  values(mb,pc,nn,sx,''now'');
*/
RETURN 100;

END;' LANGUAGE 'plpgsql';

ストアドファンクションからの戻り値の取得方法というだけであれば、
insert文は不要のはず。


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