corner imagecorner image
IDEPlatformPluginsDocs & SupportCommunityPartners

PHP を使用するデータベース駆動型アプリケーションの作成

レッスン 1a: MySQL データベースの作成

このページの内容は NetBeans IDE 6.9-7.0 が対象です

このレッスンでは、ウィッシュリストアプリケーションの開発での最後の準備手順である、テストデータを持つサンプルのデータベースの作成を示します。このチュートリアルの手順を完了するには、ウィッシャーのデータを格納するデータベースが必要です。NetBeans IDE では、IDE のインタフェースを使用して、これらのアクティビティーをすべて実行できます。
始める前に、「PHP を使用する CRUD アプリケーションの作成」のメインページにあるチュートリアルの要件を確認してください。

現在のドキュメントは、PHP チュートリアル「NetBeans IDE for PHP での CRUD アプリケーションの作成」の一部です。


データベースのユーザーの作成

データベースを作成する前に、データベースですべての操作を実行する権限が与えられているユーザーを作成する必要があります。データベースのユーザーを作成するには、次を行う必要があります。

  1. IDE を起動し、「サービス」ウィンドウに切り替えて、「データベース」ノードを展開します。
  2. MySQL データベースサーバーに接続するには、「MySQL サーバー」ノードに移動して、コンテキストメニューから「接続」を選択します。
    NetBeans のインタフェースを使用した MySQL サーバーへの接続の確立: コンテキストメニューから「接続」を選択
    「MySQL サーバープロパティー」ダイアログが表示されます。
  3. 以前に MySQL を構成していない場合は、表示されたダイアログの各フィールドに、次のように入力します。
    • 「サーバーホスト名」フィールドに「localhost」と入力します。
    • 「サーバーポート番号」フィールドに「3306」と入力します。
    • 「管理者のユーザー名」フィールドに「root」と入力します。
    • 「管理者のパスワード」フィールドに、MySQL サーバーのインストール時に設定した root ユーザーのパスワードを入力します。
    • 「パスワードを保存」チェックボックスをオンにして「了解」をクリックします。
    NetBeans のインタフェースを使用した MySQL サーバーへの接続の確立: 「MySQL サーバープロパティー」ダイアログ
    NetBeans IDE は MySQL サーバーに接続し、サーバー経由で使用できるデータベースを確認して、システムの mysql データベースを検出し、対応する新しい mysql ノードをデータベースツリーに追加します。
    データベースツリーに追加された新しい mysql ノード
  4. SQL コマンドを実行するには、データベースに接続する必要があります。MySQL システムのみ使用可能なので、それに接続する必要があります。システムデータベースに接続するには、「mysql」ノードに移動し、コンテキストメニューから「接続」を選択します。接続がまだ存在していない場合は、「新規データベース接続」ダイアログが表示されます。「ユーザー名」フィールドは、デフォルトで root になっています。「パスワード」フィールドに、root ユーザーのパスワードを入力します。
    データベース接続の新規作成
    「新規データベース接続」ダイアログに、「接続が確立されました。」というメッセージが表示されます。「了解」をクリックします。jdbc:mysql://localhost:3306/mysql という名前の新しいノードがデータベースツリーに追加されます。
  5. jdbc:mysql://localhost:3306/mysql」ノードに移動し、コンテキストメニューから「コマンドの実行」を選択します。
    コンテキストメニューから実行コマンドを選択
    「SQL コマンド」ウィンドウが開きます。「SQL コマンド」ウィンドウで、次の文のような構文を使用します。
    CREATE USER 'phpuser'@'localhost' 
    IDENTIFIED BY 'phpuserpw'
    コンテキストメニューで「文を実行」を選択します。コマンドが正常に実行された場合、ステータスバーに「SQL 文の実行に成功しました。」というメッセージが表示されます。別のメッセージが表示された場合、構文を確認し、メッセージのヒントに従います。

サンプルデータベースの作成

データベースを作成するには、次の手順に従います。

  1. MySQL サーバー localhost:3306」ノードに移動し、コンテキストメニューから「データベースを作成」を選択します。「MySQL データベースの作成」ダイアログが表示されます。フィールドに次のように入力します。
    • 「データベース名」フィールドに、「wishlist」と入力します。
    • 「ユーザーにフルアクセスを許可」チェックボックスをオンにし、ドロップダウンリストから「」を選択して「了解」をクリックします。
      「データベースを作成」ダイアログ。新しく作成したユーザーにアクセス権を付与

      「ユーザーにフルアクセス権を許可」機能は常に動作するわけではありません。これが動作しない場合、root ユーザーとしてデータベースに接続し、SQL クエリー GRANT ALL ON wishlist.* TO を送信します。

    「データベースの新規接続」ダイアログが表示されます。

サンプルデータベースへの接続の確立

「新規データベース接続」ダイアログで、フィールドに次のように入力します。

  1. 「名前」ドロップダウンリストで、「MySQL (コネクタ/J ドライバ)」を選択します。
  2. 「データベース URL」編集ボックスで、ホスト、ポート、およびデータベースを次のように指定します。
    jdbc:mysql://localhost:3306/wishlist
  3. 「ユーザー名」および「パスワード」編集ボックスで、「データベースの所有者 (ユーザー) の作成」の節で指定したユーザー名とパスワード (この例ではそれぞれ phpuserphpuserpw) を入力します。「了解」をクリックします。対応する新規接続ノードがデータベースツリーに表示されます。
    データベースツリーに追加された新規接続ノード
  4. (省略可能) これで、「jdbc:mysql://localhost:3306/」ノードに移動してコンテキストメニューから「接続を解除」>「削除」を選択し、デフォルトの mysql 接続を削除できます。

サンプルデータベースの構造の設計

必要なデータをすべて準備して格納するには、次の 2 つの表が必要です。

  • 登録済みユーザーの名前とパスワードを格納する wishers 表
  • ウィッシュの説明を格納する wishes 表
サンプルデータベースの構造: wisher-id を介して関連付けられた 2 つの表
wishers 表には次の 3 つのフィールドがあります。
  1. ID (id) - ウィッシャーの一意の ID。このフィールドは主キーとして使用されます。
  2. 名前 (name)
  3. パスワード (password)

wishes 表には次の 4 つのフィールドがあります。

  1. ID (id) - ウィッシュの一意の ID。このフィールドは主キーとして使用されます。
  2. ウィッシャーの ID (wisher_id) - ウィッシュが属するウィッシャーの ID。このフィールドは外部キーとして使用されます。
  3. 説明 (description)
  4. 期日 (due_date) - ウィッシュが要求される日付

表はウィッシャーの ID を介して関連付けられます。wishes の due_date 以外のフィールドは、すべて必須です。

表の作成

  1. データベースに接続するには、jdbc:mysql://localhost:3306/wishlist 接続で、マウスの右ボタンをクリックし、コンテキストメニューから「接続」を選択します。
    注: メニュー項目が無効になっている場合、すでに接続されています。手順 2 へ進んでください。
  2. 同じコンテキストメニューで、「コマンドを実行」を選択します。空の「SQL コマンド」ウィンドウが開きます。
  3. wishers 表を作成するには、次の手順に従います。
    1. 次の SQL クエリーを入力します (国際化のためには文字セットを明示的に UTF-8 に設定する必要があります)。
      CREATE TABLE wishers(
      id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
      name CHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL UNIQUE,
      password CHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
      )
      注: フィールドに「AUTO_INCREMENT」プロパティーを設定すると、MySQL から自動で生成される一意の番号を取得できます。MySQL は、表の最後の数字を増分して一意の番号を生成し、自動増分フィールドに自動的に追加します。この例では、ID フィールドが自動的に増分されます。
    2. クエリーでマウスの右ボタンをクリックし、コンテキストメニューから「文を実行」を選択します。

      注: MySQL のデフォルトのストレージエンジンは MyISAM で、外部キーをサポートしません。外部キーを使用する場合、ストレージエンジンとして InnoDB を使用することを検討してください。

  4. wishes 表を作成するには、次の手順に従います。
    1. 次の SQL クエリーを入力します。
      CREATE TABLE wishes(
      id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
      wisher_id INT NOT NULL,
      description CHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
      due_date DATE,
      FOREIGN KEY (wisher_id) REFERENCES wishers(id)
      )
    2. クエリーでマウスの右ボタンをクリックし、コンテキストメニューから「文を実行」を選択します。
  5. 新しい表がデータベースに追加されたことを確認するには、「サービス」ウィンドウに切り替えて jdbc:mysql://localhost:3306/wishlist の接続ノードに移動します。
  6. マウスの右ボタンをクリックし、「再表示」を選択します。「wishers」ノードと「wishes」ノードがツリーに表示されます。

注: MySQL wishlist データベースを作成するための一連の SQL コマンドは、ここからダウンロードできます。

テストデータの入力

アプリケーションをテストするには、データベース内にいくつかのデータが必要です。以降の例では、ウィッシャーを 2 つとウィッシュを 4 つ追加する方法を示します。

  1. jdbc:mysql://localhost:3306/wishlist の接続で、マウスの右ボタンをクリックして「コマンドを実行」を選択します。空の「SQL コマンド」ウィンドウが開きます。
  2. ウィッシャーを追加するには、次の例のような構文を使用します。
    INSERT INTO wishers (name, password) 
    VALUES ('Tom', 'tomcat');
    クエリー上でマウスの右ボタンをクリックし、コンテキストメニューから「文を実行」を選択します。
    注: 文には id フィールドの値は含まれていません。フィールドの型が AUTO_INCREMENT に指定されているので、値は自動的に入力されます。
    別のテストウィッシャーを入力します。
    INSERT INTO wishers (name, password) 
    VALUES ('Jerry', 'jerrymouse');
  3. ウィッシュを追加するには、次の例のような構文を使用します。
    INSERT INTO wishes (wisher_id, description, due_date) 
    VALUES (1, 'Sausage', 080401);
    INSERT INTO wishes (wisher_id, description)
    VALUES (1, 'Icecream');
    INSERT INTO wishes (wisher_id, description, due_date)
    VALUES (2, 'Cheese', 080501);
    INSERT INTO wishes (wisher_id, description)
    VALUES (2, 'Candle');

    クエリーを選択し、各クエリー上でマウスの右ボタンをクリックして、コンテキストメニューから「文を実行」を選択します。

    注: 項目 2 で説明しているように、クエリーを次々に実行することもできます。

  4. テストデータを表示するには、関連する表でマウスの右ボタンをクリックし、コンテキストメニューから「データを表示」を選択します。
    NetBeans IDE インタフェースを使用した入力済みテストデータの表示

データベースの原則とデザインパターンの一般的な知識については、チュートリアル http://www.tekstenuitleg.net/en/articles/database_design_tutorial/1 を確認してください。

MySQL の CREATE TABLE 文の構文についての詳細は、http://dev.mysql.com/doc/refman/5.0/en/create-table.html を参照してください。

表への値の挿入についての詳細は、http://dev.mysql.com/doc/refman/5.0/en/insert.html を参照してください。

注: MySQL wishlist データベースを作成するための一連の SQL コマンドは、ここからダウンロードできます。

次の手順

次のレッスン >>

チュートリアルのメインページに戻る



メーリングリストに登録することによって、NetBeans IDE PHP 開発機能に関するご意見やご提案を送信したり、サポートを受けたり、最新の開発情報を入手したりできます。

PHP の学習に戻る