PHP を使用するデータベース駆動型アプリケーションの作成
レッスン 1a: MySQL データベースの作成
このレッスンでは、ウィッシュリストアプリケーションの開発での最後の準備手順である、テストデータを持つサンプルのデータベースの作成を示します。このチュートリアルの手順を完了するには、ウィッシャーのデータを格納するデータベースが必要です。NetBeans IDE では、IDE のインタフェースを使用して、これらのアクティビティーをすべて実行できます。
始める前に、「PHP を使用する CRUD アプリケーションの作成 」のメインページにあるチュートリアルの要件を確認してください。
現在のドキュメントは、PHP チュートリアル「NetBeans IDE for PHP での CRUD アプリケーションの作成」の一部です。
データベースのユーザーの作成
データベースを作成する前に、データベースですべての操作を実行する権限が与えられているユーザーを作成する必要があります。データベースのユーザーを作成するには、次を行う必要があります。
IDE を起動し、「サービス」ウィンドウに切り替えて、「データベース」ノードを展開します。
MySQL データベースサーバーに 接続するには、「MySQL サーバー 」ノードに移動して、コンテキストメニューから「接続」を選択します。
「MySQL サーバープロパティー」ダイアログが表示されます。
以前に MySQL を構成していない場合は、表示されたダイアログの各フィールドに、次のように入力します。
「サーバーホスト名」フィールドに「localhost 」と入力します。
「サーバーポート番号」フィールドに「3306 」と入力します。
「管理者のユーザー名」フィールドに「root 」と入力します。
「管理者のパスワード」フィールドに、MySQL サーバーのインストール時に設定した root ユーザーのパスワードを入力します。
「パスワードを保存」チェックボックスをオンにして「了解」をクリックします。
NetBeans IDE は MySQL サーバーに接続し、サーバー経由で使用できるデータベースを確認して、システムの mysql データベースを検出し、対応する新しい mysql ノードをデータベースツリーに追加します。
SQL コマンドを実行するには、データベースに接続する必要があります。MySQL システムのみ使用可能なので、それに接続する必要があります。 システムデータベースに接続するには、「mysql 」ノードに移動し、コンテキストメニューから「接続」を選択します。接続がまだ存在していない場合は、「新規データベース接続」ダイアログが表示されます。「ユーザー名」フィールドは、デフォルトで root になっています。「パスワード」フィールドに、root ユーザーのパスワードを入力します。
「新規データベース接続」ダイアログに、「接続が確立されました。」というメッセージが表示されます。「了解」をクリックします。jdbc:mysql://localhost:3306/mysql という名前の新しいノードがデータベースツリーに追加されます。
「jdbc:mysql://localhost:3306/mysql 」ノードに移動し、コンテキストメニューから「コマンドの実行」を選択します。
「SQL コマンド」ウィンドウが開きます。「SQL コマンド」ウィンドウで、次の文のような構文を使用します。
CREATE USER 'phpuser'@'localhost' IDENTIFIED BY 'phpuserpw'
コンテキストメニューで「文を実行」を選択します。コマンドが正常に実行された場合、ステータスバーに「SQL 文の実行に成功しました。」というメッセージが表示されます。別のメッセージが表示された場合、構文を確認し、メッセージのヒントに従います。
サンプルデータベースの作成
データベースを作成するには、次の手順に従います。
「MySQL サーバー localhost:3306 」ノードに移動し、コンテキストメニューから「データベースを作成」を選択します。「MySQL データベースの作成」ダイアログが表示されます。フィールドに次のように入力します。
「データベースの新規接続」ダイアログが表示されます。
サンプルデータベースへの接続の確立
「新規データベース接続」ダイアログで、フィールドに次のように入力します。
「名前」ドロップダウンリストで、「MySQL (コネクタ/J ドライバ)」を選択します。
「データベース URL」編集ボックスで、ホスト、ポート、およびデータベースを次のように指定します。
jdbc:mysql://localhost:3306/wishlist
「ユーザー名」および「パスワード」編集ボックスで、「データベースの所有者 (ユーザー) の作成 」の節で指定したユーザー名とパスワード (この例ではそれぞれ phpuser と phpuserpw ) を入力します。「了解」をクリックします。対応する新規接続ノードがデータベースツリーに表示されます。
(省略可能) これで、「jdbc:mysql://localhost:3306/ 」ノードに移動してコンテキストメニューから「接続を解除」>「削除」を選択し、デフォルトの mysql 接続を削除できます。
サンプルデータベースの構造の設計
必要なデータをすべて準備して格納するには、次の 2 つの表が必要です。
登録済みユーザーの名前とパスワードを格納する wishers 表
ウィッシュの説明を格納する wishes 表
wishers 表には次の 3 つのフィールドがあります。
ID (id) - ウィッシャーの一意の ID。このフィールドは主キーとして使用されます。
名前 (name)
パスワード (password)
wishes 表には次の 4 つのフィールドがあります。
ID (id) - ウィッシュの一意の ID。このフィールドは主キーとして使用されます。
ウィッシャーの ID (wisher_id) - ウィッシュが属するウィッシャーの ID。このフィールドは外部キーとして使用されます。
説明 (description)
期日 (due_date) - ウィッシュが要求される日付
表はウィッシャーの ID を介して関連付けられます。wishes の due_date 以外のフィールドは、すべて必須です。
表の作成
データベースに接続するには、jdbc:mysql://localhost:3306/wishlist 接続で、マウスの右ボタンをクリックし、コンテキストメニューから「接続」を選択します。
注: メニュー項目が無効になっている場合、すでに接続されています。手順 2 へ進んでください。
同じコンテキストメニューで、「コマンドを実行」を選択します。空の「SQL コマンド」ウィンドウが開きます。
wishers 表を作成するには、次の手順に従います。
次の 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 フィールドが自動的に増分されます。
クエリーでマウスの右ボタンをクリックし、コンテキストメニューから「文を実行」を選択します。
注: MySQL のデフォルトのストレージエンジンは MyISAM で、外部キーをサポートしません。外部キーを使用する場合、ストレージエンジンとして InnoDB を使用することを検討してください。
wishes 表を作成するには、次の手順に従います。
次の 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) )
クエリーでマウスの右ボタンをクリックし、コンテキストメニューから「文を実行」を選択します。
新しい表がデータベースに追加されたことを確認するには、「サービス」ウィンドウに切り替えて jdbc:mysql://localhost:3306/wishlist の接続ノードに移動します。
マウスの右ボタンをクリックし、「再表示」を選択します。「wishers」ノードと「wishes」ノードがツリーに表示されます。
注: MySQL wishlist データベースを作成するための一連の SQL コマンドは、ここ からダウンロードできます。
テストデータの入力
アプリケーションをテストするには、データベース内にいくつかのデータが必要です。以降の例では、ウィッシャーを 2 つとウィッシュを 4 つ追加する方法を示します。
jdbc:mysql://localhost:3306/wishlist の接続で、マウスの右ボタンをクリックして「コマンドを実行」を選択します。空の「SQL コマンド」ウィンドウが開きます。
ウィッシャーを追加するには、次の例のような構文を使用します。
INSERT INTO wishers (name, password) VALUES ('Tom', 'tomcat');
クエリー上でマウスの右ボタンをクリックし、コンテキストメニューから「文を実行」を選択します。
注: 文には id フィールドの値は含まれていません。フィールドの型が AUTO_INCREMENT に指定されているので、値は自動的に入力されます。
別のテストウィッシャーを入力します。
INSERT INTO wishers (name, password) VALUES ('Jerry', 'jerrymouse');
ウィッシュを追加するには、次の例のような構文を使用します。
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 で説明しているように、クエリーを次々に実行することもできます。
テストデータを表示するには、関連する表でマウスの右ボタンをクリックし、コンテキストメニューから「データを表示」を選択します。
データベースの原則とデザインパターンの一般的な知識については、チュートリアル 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 コマンドは、ここ からダウンロードできます。
次の手順
次のレッスン >>
チュートリアルのメインページに戻る
users
@
php.netbeans.org
メーリングリストに登録する ことによって、NetBeans IDE PHP 開発機能に関するご意見やご提案を送信したり、サポートを受けたり、最新の開発情報を入手したりできます。
PHP の学習に戻る