[pgsql-jp: 31259] SQL文の解釈について

Kenichirou Yoshida k-yoshida91 @ hitachi-kenki.co.jp
2003年 10月 22日 (水) 20:26:31 JST


吉田です。

ちょっと疑問を感じてたので、解決方法が分からなかったので投げて見ます。

えっと、環境は以下の通り
apache 1.3.27
PostgreSQL 7.3.4 (tar.gzよりインストール)
PHP 4.3.3 (tar.gzよりインストール)
PHPLib 7.4
カーネルは 2.4.18-10 TurboLinux Workstation 7 です。

データベースは --no-locale --encoding=EUC_JP としてあります。
過去のメールを調べましたが、似たようなところがありましたが、
まったく違う状況です。
phpコードの文字コードは全てEUC-JPを統一しており、S_Shiftは使っていません。

例えば、以下のようなSQL文を叩くとエラーになります。
hogehoge=> select * from hogehoge where NAME='山田 太郎';
ERROR:  Attribute "name" not found

となり、これは意味が分からなかったのですが、
phpPgAdmin 3.1 からも同じ結果でした。

色々と試したあげく、エラーが出なくなりましたが、何か釈然しません。
hogehoge=> select * from hogehoge where "NAME"='山田 太郎';
    <<<結果表示>>>

NAME のところを "NAME" を入れれば問題ないというのですが、
これでは、phplibが使えません・・・。エラーになります。
認証クラスというところにsql文が入っています。
class hoge_Auth extends Auth 

Fatal error: Cannot instantiate non-existent class: hoge_auth in /home/hogehoge/lib/session.inc(339) : eval()'d code on line 1

なぜ「""」を括らないと通らないのでしょう?
PostgreSQLのConfigureがおかしいのか、何が原因なのか分かりません。

心当たりがありましたら、解決策を教授願います。



pgsql-jp メーリングリストの案内