corner imagecorner image
IDEPlatformPluginsDocs & SupportCommunityPartners

使用 PHP 创建数据库驱动的应用程序

课程 1a:创建 MySQL 数据库

本页上的内容适用于 NetBeans IDE 6.9-7.0

本课程介绍在开发心愿列表应用程序时的最后一个预备步骤,即,使用测试数据创建样例数据库。要在本教程中完成这些步骤,您需要创建一个数据库以存储许愿者的数据。通过使用 NetBeans IDE,您可以通过 IDE 界面执行所有这些活动。
在开始之前,请参见使用 PHP 创建 CRUD 应用程序 - 主页中介绍的教程要求。

当前文档是“在适用于 PHP 的 NetBeans IDE 中创建 CRUD 应用程序”教程的一部分。


创建数据库用户

在创建数据库之前,您需要创建一个数据库用户,并为该用户授予权限以对数据库执行任何操作。在创建数据库用户时,您需要执行以下操作:

  1. 启动 IDE,切换到“服务”窗口,然后展开“数据库”节点。
  2. 要连接到 MySQL 数据库服务器,请导航到“MySQL 服务器”节点,然后从上下文菜单中选择“连接”。
    使用 NetBeans IDE 界面建立到 MySQL 服务器的连接:从上下文菜单中选择“连接”
    将显示“MySQL 服务器属性”对话框。
  3. 如果以前未配置 MySQL,则会打开一个对话框,您可以在其中填写以下字段:
    • 在“服务器主机名”字段中,键入 localhost
    • 在“服务器端口号”字段中,键入 3306
    • 在“管理员用户名”字段中,键入 root
    • 在“管理员口令”字段中,键入在安装 MySQL 服务器期间设置的 root 用户口令。
    • 选中“保存口令”复选框,然后单击“确定”。
    使用 NetBeans IDE 界面建立到 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. 导航到位于 localhost:3336 上的 MySQL 服务器节点,然后从上下文菜单中选择“创建数据库”。将显示“创建 MySQL 数据库”对话框。填写以下字段:
    • 在“数据库名称”字段中,输入 wishlist。
    • 选中“为用户授予完全访问权限”复选框,从下拉列表中选择 "",然后单击“确定”。
      “创建数据库”对话框。为新创建的用户授予访问权限

      “为用户授予完全访问权限”功能并非始终正常工作。如果该功能无法正常工作,请以 root 用户身份连接到数据库,然后发送 SQL 查询 GRANT ALL ON wishlist.* TO

    将显示“新建数据库连接”对话框。

建立到样例数据库的连接

在“新建数据库连接”对话框中,填写以下字段:

  1. 从“名称”下拉列表中选择 "MySQL (Connector/J driver)"。
  2. 在“数据库 URL”编辑框中,按如下方式指定主机、端口和数据库:
    jdbc:mysql://localhost:3306/wishlist
  3. 在“用户名”和“口令”编辑框中,输入在创建数据库所有者(用户)部分中指定的名称和口令(在我们的示例中,分别是 phpuserphpuserpw)。单击“确定”。将在“数据库”树中显示相应的新连接节点。
    新连接节点已添加到“数据库”树中
  4. (可选)现在,您可以使用以下方法删除缺省 mysql 连接:导航到 jdbc:mysql://localhost:3306/ 节点,从上下文菜单中选择“断开连接”,然后选择“删除”。

设计样例数据库的结构

要排列和存储所需的所有数据,您需要使用两个表:

  • 一个是 wishers 表,用于存储注册用户的名称和口令
  • 另一个是 wishes 表,用于存储心愿说明
样例数据库的结构:两个表通过 wisher_id 相关联
wishers 表包含三个字段:
  1. id - 许愿者的唯一 ID。该字段用作主键
  2. name
  3. password

wishes 表包含四个字段:

  1. id - 心愿的唯一 ID。该字段用作主键
  2. 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 节点。

注意:您可以在此处下载一组 SQL 命令以创建 MySQL wishlist 数据库。

输入测试数据

要测试应用程序,您需要使用数据库中的某些数据。下面的示例说明了如何添加两个许愿者和四个心愿。

  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

注意:您可以在此处下载一组 SQL 命令以创建 MySQL wishlist 数据库。

后续步骤

下一课 >>

返回到教程主页



要发送意见和建议、获得支持以及随时了解 NetBeans IDE PHP 开发功能的最新开发情况,请加入 邮件列表

返回至 PHP 学习资源