2011年2月25日金曜日

PHPとpostgresqlでテーブル一覧を取得

どうも、オレ@始業しましたです。

忘れないうちにメモメモ。
DBがpostgreSQLでphpからテーブル一覧を取得するためのクエリについて。
postgreSQLのバージョンは7.4.12ですが、おそらく他のバージョンでも大丈夫かな?(未確認)
PHPのバージョンは5以上です。
<?php
$pdo = new PDO('pgsql:host=localhost;port=5432;dbname=dbname;user=username;password=password');
$sql = 'select pg_statio_user_tables.relname
from pg_catalog.pg_class,pg_catalog.pg_statio_user_tables
where relkind='r'
and pg_catalog.pg_statio_user_tables.relid=pg_catalog.pg_class.relfilenode';
$stmt = $pdo->query($sql);
var_dump($stmt->fetchAll());
連想配列(fetchAll()した結果)でテーブル一覧が取得できます。
ただし、作った覚えのないテーブルも含まれているので要注意。

ちなみに、MySQLだと簡単で
<?php
$sql = 'show tables';
$stmt = $pdo->query($sql);
var_dump($stmt->fetchAll());
です。

以上でぇぇぇす。

0 件のコメント: