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」は「"」にしなくちゃいけないっぽい。