ActivePerl For Windows
 
TryThe Homepage
初めてのCGI
CGI 研究室
ダイナミックCGI
ダウンロード
サービス
サーバ構築(Windows)
データベースアクセス
有料サービス
FAQ
お問い合わせ
このページを印刷
Windows用 MySQL
  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をインストールします。
    [スタート]メニューの「ファイル名を指定して実行」で、
    command
    とタイプして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 は、郵便番号順に並び替えると言うことになります。
Copyright 2004 Terra. All rights reserved. No reproduction or republication without written