• ベストアンサー

フィールドから値を読み出す

凄い初歩的な質問だと思いますが、 テーブルから値を出力する時に 「100」などといった数値なら読み込み可能なんですが、 「aaa100」といった文字列の場合ですと、 Warning: pg_query() query failed: ERROR: column "aaa100" does not exist のようなエラーが出てしまいます。 何か特別な出力方法が必要なのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#223623
noname#223623
回答No.2

フィールドが文字列型の場合は検索する値を「'」で囲みます。「kk = '170cm'」となるように書いてください。本来なら「100」でも「kk = '100'」とするはずですが。本当にそのフィールドは文字列型ですか? 「170」と入っているレコードと、「170cm」のレコードを両方抽出したいなら「=」ではなく「like」を使います。 参考URLにwhere句の使い方がいろいろ書いてあります。確認してください。select文の例ですがupdate文でも同じですから。 それから、これってPHPの話ですか?エラーを見るとpg_queryの使い方が違うのかもね。

参考URL:
http://cyberam.dip.jp/database/postgres/sql/select/select_main.html
gantz77
質問者

お礼

なんか物凄い初歩的なミスだったようです。 $hoge = 'aa11'; $query .= " WHERE hoge = ".$hoge; を $hoge = "'aa11'"; $query .= " WHERE hoge = ".$hoge; にする事によって値が文字列でも抽出できました。 変数指定の時に、てっきりシングルクォーテーションで 囲んでいるものとばかり勘違いしていたようです。 ご助言有難う御座いました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

こんにちは。 まだよくわかってないのですが、 エラーの内容から考えると、「aaa100」というカラムが存在しない・・・。 ちゃんと値の方を訊いてますか? SELECTの項目でのエラーのような・・・。 (^^ゞ

gantz77
質問者

お礼

自分も「この文字列は存在しません」ってエラーが返されて 命令の方を疑いましたが、特に悪いところはありませんでした。 とりあえず解決しましたので、 お騒がせして申し訳ありませんでした。

すると、全ての回答が全文表示されます。
回答No.1

こんにちは。 私の理解力不足で申し訳ないんですが・・・、 >>テーブルから値を出力する時に 具体的にお願いします。 >>「100」などといった数値なら読み込み可能なんですが ???です・・・。 (^^ゞ

gantz77
質問者

補足

すいません。 文章が分かり辛いですよね… 例えて言うならば「プロフィール」というテーブルの中に 「身長」とか「体重」などのフィールドがあって、 その中の1つ、「身長」というフィールド内に格納されている値が 「170」とか「180」といった数値だったらPHPのSQL文で抽出可能なんですが、 「170cm」という文字列だったら、前述のようなエラーが出てしまうという事です。 UPDATE tablename SET aa = bb WHERE kk = $value; という命令があって、 「$value」の値が「170」だったら正常ですが 「170cm」だったらエラーが出てしまうのです。 (「170」も「170cm」も両方格納されていると仮定してください) どうでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A