[PHP-users 23344]Re: データベース内のすべてのテーブルについてあるsql文を実行したい

KOYAMA HIDEKI hill47goodtree @ ybb.ne.jp
2004年 9月 19日 (日) 08:33:33 JST


 Adstarkさま、yoshiさま、ご教示ありがとうございました。
おおせのとおり、入れ子になっているリソース文について番号
をふったところ動くようになりました。スクリプトは以下のよ
うです。

『test1』に3つのテーブルがあるとします。
             tablename
          …………………
            syoseki_18 
            syoseki_257
            syoseki_3457

スクリプト『syoseki_data.php』
<?php
$dbname = "test1";
$user = "postgres";
$pass = "**********";
// データベースに接続する
$conn = pg_connect("dbname=$dbname");

$sql = "SELECT tablename FROM pg_tables WHERE tablename
like 'syoseki%' ORDER BY id;";
$res = pg_query($conn, $sql) or die("データ抽出エラー");
for ($i = 0; $i<pg_num_rows($res); $i++) {
    $row = pg_fetch_array($res, $i, PGSQL_ASSOC);
    $tablename1 = $row["tablename"];

// データを取り出す
$sql_{$i} = "SELECT id, kara, made, number, name, syozoku,
syoseki FROM $tablename1 ORDER BY id;";
$res_{$i} = pg_query($conn, $sql_{$i}) or die("データ抽
出エラー"); 
…………………
…………………
}
// 接続を解除する
pg_close($conn);
?>

しかしそれにしてもスクリプトがごちゃごちゃして大変です。
『データベース内のすべてのテーブルについてある sql 文を
実行したい』ということは、まれではなく行う操作かと思いま
す。PHPで関数を用意してくれていれば…など思ってしまいま
す。(PHPが初めての言語でなおかつ初心者の弁)








PHP-users メーリングリストの案内