| MySQL のインストール |
|
- Windows版のMySQLを
ミラーサイトからダウンロードします。
Windows版はzip形式で圧縮された、Varsion4なら「mysql-4.0.20-win.zip」のように
バージョンナンバーが付いたファイル名になっています。
- C:ドライブのルートディレクトリにMySQL用のディレクトリ「mysql」を作成し、
ここに解凍してください。
解答されたファイルは、C:\mysql にすべて無ければなりません。
- C:\mysql に有るインストーラsetup.exe を実行します。
ウィザードに従うだけですから簡単にインストールは完了します。
Windows2000/Xp であれば再起動するとサービスでMySQLは起動しています。
もし起動されていなければ、C:\mysql\bin のmysqld.exe を実行します。
|
| Perlモジュール DBI、DBDのインストール |
|
- 極端に古いActivePerlでない限り、OLEモジュールは標準でインストールされていますので、
改めてインストールする必要はありません。
#!/user/local/bin/perl
use DBI;
print "Content-type: text/plain\n\n";
exit;
|
|
これだけのコードのCGIを実行してエラーが出力されなけばDBIはインストール済みと言うことになりますので、
以下のモジュールインストールは飛ばしてください。
- エラーの出力された方はDBIをインストールします。
[スタート]メニューの「ファイル名を指定して実行」で、
とタイプしてDOSシェルを起動します。
C:\> ppm
PPM interractive shell (2.2.0) - type 'help' for available command
PPM> search DBI
PPM> install DBI
Install package 'DBI?' (y/N): y
|
ppm とタイプして、PPM コマンドを起動します。
search DBI で検索し、DBI が表示されれば、
install DBI でインストールしてください。
これでデータベースへのアクセスの準備は完了です。
あとは実際にインターフェースを作成してアクセスするだけです。
|
| データベースの管理 |
|
- WindowsにはWebminのようなリモートソフトが存在しませんので、
MySQLのデータベースを管理するには、GUIで動作するMySQLクライアントを使用します。
MySQLサーバをインストールしただけでもmysqlコマンドは使用可能ですが、
コマンドラインの操作ですので簡単ではありません。コマンドを覚えるだけでも一苦労です。
MySQLクライアント(mysqlcc)を使えば、通常のWindowsアプリケーション同様に、
GUIで操作が可能になります。
インストール方法や、操作法は事項「MySQLコントロールセンタ」を
ご参照ください。
|
| MySQLへのアクセス |
|
- データベースサーバが同じですからアクセス方法もUNIX/Linux版と全く同じです。
#!/usr/local/bin/perl
# DBIモジュールを読込む
use DBI;
# データベース名を設定
$database = "zip";
# ホスト名を設定
$hostname ="localhost";
# ユーザ名を設定
$user = "root";
# データベースにパスワードを設定していれば指定
$password = "********";
print "Content-type: text/html\n\n";
print "<html>"
print "<body>"
# データベースのオブジェクトを作成して接続
$dsn="DBI:mysql:database=$database:host=$hostname";
$dbh = DBI->connect($dsn,$user,$password);
# 高知県を郵便番号順に取得
# 取得したテーブルにリレーションで都道府県名を追加している
$rs = $dbh->prepare("SELECT iptable.*,pretable.name FROM iptable LEFT JOIN pretable ON iptable.pre=pretable.pre WHERE iptable.pre = 39 ORDER BY iptable.code;");
$rs->execute();
# 取得したレコードセットの数だけループして表示
while(@FIELD = $sql->fetchrow()) {
print "$FIELD[1] $FIELD[4]$FIELD[3]<br>\n";
}
# レコードセットを閉じる
$rs->Close();
# データベースを閉じる
$dbh->Close();
print "</body></html>";
exit;
|
|
それでは、SELECT文を見てみましょう。
SELECT iptable.*,pretable.name これは、テーブル「iptable」のすべてのフィールドと、
テーブル「pretable」の「name」フィールドを取得しなさいと言うことで、
FROM iptable LEFT JOIN pretable ON iptable.pre=pretable.pre
は、iptableのpreフィールドとpretableのpreフィールドの一致する物だけiptableに追加すると言うことになります。
この事で、iptableの都道府県番号がpretableの都道府県名に変換されレコードセットに追加されるのです。
WHERE iptable.pre = 39 は、iptableの都道府県番号39(高知県)を抽出
ORDER BY iptable.code は、郵便番号順に並び替えると言うことになります。
|