php pdoで別のスキーマに接続(postgres)

2011/06/09

PDOでPostgreSQLに接続しているんだけど、別のスキーマに接続したい。
よく「$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);」みたいな感じで接続はあるんだけど、スキーマの指定がないんだよね。

スキーマを指定する

スキーマを指定して接続ではなく、クエリ側で指定する。

select * FROM [テーブル名]."[スキーマ名]"

例)テーブル名「table」、スキーマ名「schema」とする
select * FROM table."schema"
※スキーマ名には「""」をつける。テーブル名につけても無問題。

メモ

PHP Unitってヤツを使えば良いようなことが書いているんだけど…ちゃんと読む必要があるっぽい。
ちゃんと読んで理解できるかすら不明ではあるんだけどね。

あれこれ調べていても他には方法もなく、だからといって、PHP Unitは面倒そうだし…ってことで「pgAdminIII」でどういう感じのselect文を作ってくれるかを試してみた。試してみた結果は上述のような感じ。

MySQLだとテーブルにしても「`」でくくれば良いんだけど「PostgreSQL」は「"」にしなくちゃいけないっぽい。

新着(ニュース関連以外)

2017-08-03
formのinputでmaxlengthを使うとFirefoxでバグってた。他のブラウザでも気づかずにバグってたかもしれない。
2017-07-19
折れ線グラフをもう少しゆるやかに・・・というか何というか・・・調べていくと「移動平均」っていう言葉にたどり着いた
2017-07-10
FuelPHPの1.8をダウンロードして使っていたらセッションが使えないということに気付いた。
2017-06-27
MACにWin10をインストールしてみた:再挑戦。
2017-06-25
「簡単」っていうヤツらが多いけど・・・難しいぞ。