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

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

このページの内容は、NetBeans IDE 7.2、7.3、7.4および8.0に適用されます

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

現在のドキュメントは、PHP向けのNetBeans IDEでのCRUDアプリケーションの作成というPHPチュートリアルの一部です。


MySQLサーバーの登録

MySQLデータベース・サーバーをIDEに登録していない場合、またはMySQLとNetBeans IDEを組み合せて使用する場合の一般的な情報が必要な場合、MySQLデータベースへの接続を参照してください。

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

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

  1. IDEを起動し、「サービス」ウィンドウに切り替えて([Ctrl]-[5])、「データベース」ノードを展開します。
  2. MySQLデータベース・サーバーに接続するには、「MySQLサーバー」ノードに移動して、コンテキスト・メニューから「接続」を選択します。
    NetBeans IDEのインタフェースを使用したMySQLサーバーへの接続の確立: コンテキスト・メニューから「接続」を選択
  3. NetBeans IDEはMySQLサーバーに接続し、サーバー経由で使用できるデータベースを確認して、システムのmysqlデータベースを検出し、対応する新しいmysqlノードをデータベース・ツリーに追加します。
    データベース・ツリーに追加された新しいmysqlノード
  4. SQLコマンドを実行するには、データベースに接続する必要があります。MySQLシステムのみ使用可能なので、それに接続する必要があります。システム・データベースに接続するには、「mysql」ノードに移動し、コンテキスト・メニューから「接続」を選択します。接続がまだ存在していない場合は、「データベースの新規接続」ダイアログ・ボックスが表示されます。「ユーザー名」フィールドは、デフォルトで「root」と入力されています。「パスワード」フィールドに、ルート・ユーザーのパスワードを入力します。

    注意: 以前にmysqlデータベースに接続したことがある場合、このダイアログは表示されません。かわりに、新しい接続ノードがツリーに表示されるだけです。

    新規データベース接続の作成
    「データベースの新規接続」ダイアログ・ボックスに、「接続が確立されました。」というメッセージが表示されます。「OK」をクリックします。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」と入力します。
    • 「ユーザーにフル・アクセスを許可」チェックボックスをオンにし、ドロップダウン・リストから「」を選択して「OK」をクリックします。
      「データベースを作成」ダイアログ・ボックス。新しく作成したユーザーにアクセス権を付与

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

    データベースへの接続が、ツリーに表示されます。ただし、接続はrootユーザー用です。phpuserユーザー用の接続が必要です。

ウィッシュリスト・データベースへの接続の確立

前の項の最後に、wishlistデータベースとrootユーザーへの接続が作成されました。ここで、phpuserユーザー用に新しい接続を作成します。

  1. 「サービス」ウィンドウで、「データベース」ノードを右クリックし、「新規接続」を選択します。新規接続ウィザードが開きます。
    プロパティ項目を表示したデータベース接続コンテキスト・メニュー
  2. 新規接続ウィザードの「ドライバを検索」パネルで、「MySQL (Connector/J Driver)」を選択します。「次」をクリックします。「接続をカスタマイズ」パネルが開きます。
    新規接続ウィザードの「ドライバを検索」パネル
  3. 「データベース」フィールドに「wishlist」と入力します。
  4. 「ユーザー名」および「パスワード」編集ボックスで、データベースの所有者(ユーザー)の作成の項で指定したユーザー名とパスワード(この例ではそれぞれphpuserphpuserpw)を入力します。「パスワードを保存」を選択します。「接続をテスト」をクリックし、接続が成功したら、「OK」をクリックします。
    完成した新規接続ウィザードの「接続をカスタマイズ」パネル

対応する新規接続ノードがデータベース・ツリーに表示されます。ここで、rootユーザーのwishlistデータベースへの接続を削除できます。「jdbc:mysql://localhost:3306/wishlist [root on Default schema]」接続をクリックし、「削除」を選択します。

データベース・ツリーに追加された新規接続ノード

ウィッシュリスト・データベースの構造の設計

必要なデータをすべて準備して格納するには、次の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の学習に戻る
get support for the NetBeans

Support


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2013, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo