[PHP-users 1170] Re: PHP からデータベースのテーブル存在確認(解決)
Kenji Tagami
php-users@php.gr.jp
Mon, 13 Aug 2001 15:32:43 +0900
田上です。
皆様、早速のアドバイスをありがとうございました。
また、1つのスレッドに2つの質問を書いて混乱をさせてしまい、
申し訳ありません。
On Mon, 13 Aug 2001 13:31:38 +0900
Seto <seto@cii.gr.jp> wrote:
> 以前のスレッドで以下のものが参考になると思います。(そのままかも)
>
> [PHP-users 555] PostgreSQLのテーブル一覧の取得
そのスレッドそのものでした。
過去ログも探したのですが、探し方が悪かったようです。
どうもありがとうございました。
On Mon, 13 Aug 2001 13:44:47 +0900
Tatsuo Ishii <t-ishii@sra.co.jp> wrote:
> # 全然PHPじゃない:-<
申し訳ありません。PHPからの操作〜としか頭に無かったので…
以後、投稿先に気を付けます。
On Mon, 13 Aug 2001 13:50:55 +0900
"新開連三" <rshinkai@hyperweb.co.jp> wrote:
> psql -El
> とするとPogtgreSQLがどうやってデータベース名を
> 取得しているか分かります。
-E を付けての \d コマンドの SQL 文が非常に為にありました。
ありがとうございます。
> 2.テーブル が既に存在しているかの確認方法
の実際のソースですが、
function TABLECheck($table_name) {
// 既存テーブル名取得 SQL 文
$cktabsql = "SELECT c.relname FROM pg_class c WHERE c.relkind = 'r' AND c.relname !~ '^pg_';";
// SQL 文の実行
@$result = pg_exec($cktabsql);
// SQL 文の実行結果から行数列数の取得
$rows = pg_numrows($result);
$cols = pg_numfields($result);
// 結果の内容を取得 (既存テーブル名取得)
for ($x = 0; $x < $rows; $x++) {
for ($y = 0; $y < $cols; $y++) {
$existing_table_name[] = pg_result($result,$x,$y);
}
}
foreach ($existing_table_name as $mc) {
if ($mc == $table_name) {
echo "$table_name は既に存在しています。";
exit;
} else {
// テーブル新規作成の SQL 文
}
}
※プログラム的に多々問題があるかと思いますが、ご容赦下さい。
--
Kenji Tagami ( akatsuki@m78.com )