[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 メーリングリストの案内