[PHP-users 10224] Re: SELECT文が通らない

D.Yamashita php-users@php.gr.jp
Wed, 18 Sep 2002 18:42:33 +0900


山下と申します。

> PHP4.2.2+Postgres7.1.3+apache1.3.26で簡単なサイトを立ち上げようと
> 気の遠くなる事を考えております。
>
> 3日間悩んでいるのですが、
> PHPでSELECT文を作成して、Postgresに問い合わせをしているのですが、下記
> のエラーがでます。
> ___________________________________
> Warning: pg_exec(): supplied argument is not a valid PostgreSQL link
> resource in /usr/local/apache/htdocs/hoge.php on line 60
>  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

ちょっとハズした横やりですが、
PHPの4.2以降は、pg_execという関数はpg_queryという関数名に
変更になっています。ついでに、PostgreSQLは7.2以降データの形式が
変更になったらしく、7.1.3からバージョンアップする時に少々面倒くさい
ことが起こります。(経験済み。。。T_T)
今から始められるのであれば、PostgreSQLも7.2以降を最初から
インストールされることをオススメします。

本題に関して私が思うのは、川合様がご指摘されたのと同じですが、
pg_connect()を実行した時に返されるコネクションの値を
まずは確認されるのがよろしいかと。

    $query = "SELECT * FROM hoge_data";
    $conn_str = "host=".$db_host." port=".$port." dbname=".$db_name.
                " user=".$user." password=".$passwd;
    $conn = pg_connect($conn_str);
    if(!$conn)
        print("PostgreSQL connection error!\n");
    else {
        $phpversion = (float)phpversion();
        if($phpversion>=4.2)
            $result = pg_query($conn, $query);
        else
            $result = pg_exec($conn, $query);
        pg_close($conn);
    }

では。

失礼致します。

---
国国国国国国国国国国国国国国国国国国国国国国国国
大阪大学大学院 工学研究科 情報システム工学専攻
                        山 下  大 介
  Mail: yamasan@ise.eng.osaka-u.ac.jp
国国国国国国国国国国国国国国国国国国国国国国国国