[PHP-users 14860]Re: [PHP-users14665]PEARでクエリが実行されるときとされない時がある

Youichi Iwakiri yiwakiri @ st.rim.or.jp
2003年 4月 24日 (木) 12:25:56 JST


いわきりです

sorako yamamoto wrote in <Sea2-F325COCHT8TXx3000027dd @ hotmail.com> :
>感じ的にトランザクションの問題ではないかという気がしてます。

>> pgsqlより
>> >「current transaction is aborted, queries ignored until 
>> >end of transaction block」
>> トランザクションが発生している箇所が記載されてませんので
>> 提示されたコードだけの問題ではなさそうですね。
>> または記載された関数をつかってBEGINを発行して
>> その後のfetchRowでエラーになってるとか。
>
>このソースでは、
>execUpdate()で、ロールバックも何も行っていないのですが、
>(1つのSQLしか処理しないので、あえてロールバックを行う必要もないのかなと思い
>入れてませんでしたが…?)
>この作りに問題があるのでしょうか。

PostgreSQL側で
current transaction is aborted, queries ignored until 
end of transaction block

が、出ると言うことなので、PostgreSQLの起動時にデバッグレベルを上げて
ログを取れば、上記 NOTICEメッセージの出力される前行に実行された
SQLが残ります。

1.PHP側から渡すSQLとPostgreSQLが受け取っているSQLを見比べる。
2.psqlコマンドで、上記SQLを発行した場合、同様のNOTICEが出ないか確認

等を行ったらどうですか?

postmasterの起動停止が可能で無ければ管理者と相談して下さい。

$ pg_ctl restart -o '-d 1'

で、良かったと思いますが、必要な情報が取れないようなら`-d 1'の部分を
`-d 2'とかにして下さい。デバッグレベルは5まであります。

-- 
Youichi Iwakiri



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