[PHP-users 12085] Re: pg_affected_rows() について

Yasuo Ohgaki php-users@php.gr.jp
Sun, 08 Dec 2002 18:39:31 +0900


大垣です。

fumio wrote:
> fumioです。
> 
> PHP 4.2.3 のソースを追っていったところ、configure の中に問題ありそうな
> 箇所を発見しました。52140行目からの "checking for PQcmdTuples in -lpq"
> のところで、PostgreSQL API の PQcmdTuples() の存在をチェックいるようで
> すが、プロトタイプに間違いがあるんじゃないでしょうか。以下抜粋。

結論から言うとconfigureには問題ありません。
コンパイルできるかどうかを確認しているだけで、
PQcmdTuplesがあるかどうかだけを確認してます。

# つまり、コンパイラがエラーを出力しても、コンパイル
# できれば(exit stauts=0)であればOK

古い(または壊れた?)Windows+libpqの問題と思います。
プラットフォームは何ですか? Windowsなら新しい、libpq
を使ってみてください。

UNIX系のlibpqにはこの問題はないはずですが...違っていた
ら教えてください。UNIX系の場合は、nmでシンボルが定義され
ているか確認してください。この場合、OS、バージョン、コンパ
イラ、コンパイラのバージョンもお願いします。

--
Yasuo Ohgaki

> 
> --
> #line 52150 "configure"
> #include "confdefs.h"
> /* Override any gcc2 internal prototype to avoid an error.  */
> /* We use char because int might match the return type of a gcc2
>     builtin and then its argument prototype would still apply.  */
> char PQcmdTuples();
> 
> int main() {
> PQcmdTuples()
> ; return 0; }
> --
> 
> http://www.postgresql.jp/document/pg721doc/programmer/libpq-exec.html#LIBPQ-EXEC-NONSELECT
> によると、
> 
> char PQcmdTuples();
> 
>  ではなく、
> 
> char * PQcmdTuples(const PGresult *res);
> 
> が正しいようです。
>