使用 PHP 创建数据库驱动的应用程序
课程 1a:创建 MySQL 数据库
本课程介绍在开发心愿列表应用程序时的最后一个预备步骤,即,使用测试数据创建样例数据库。要在本教程中完成这些步骤,您需要创建一个数据库以存储许愿者的数据。通过使用 NetBeans IDE,您可以通过 IDE 界面执行所有这些活动。
在开始之前,请参见使用 PHP 创建 CRUD 应用程序 - 主页 中介绍的教程要求。
当前文档是“在适用于 PHP 的 NetBeans IDE 中创建 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 语句”消息。如果显示其他消息,请检查语法并按照消息提示进行操作。
创建样例数据库
创建数据库:
导航到位于 localhost:3336 上的 MySQL 服务器 节点,然后从上下文菜单中选择“创建数据库”。将显示“创建 MySQL 数据库”对话框。填写以下字段:
将显示“新建数据库连接”对话框。
建立到样例数据库的连接
在“新建数据库连接”对话框中,填写以下字段:
从“名称”下拉列表中选择 "MySQL (Connector/J driver)"。
在“数据库 URL”编辑框中,按如下方式指定主机、端口和数据库:
jdbc:mysql://localhost:3306/wishlist
在“用户名”和“口令”编辑框中,输入在创建数据库所有者(用户) 部分中指定的名称和口令(在我们的示例中,分别是 phpuser 和 phpuserpw )。单击“确定”。将在“数据库”树中显示相应的新连接节点。
(可选)现在,您可以使用以下方法删除缺省 mysql 连接:导航到 jdbc:mysql://localhost:3306/ 节点,从上下文菜单中选择“断开连接”,然后选择“删除”。
设计样例数据库的结构
要排列和存储所需的所有数据,您需要使用两个表:
一个是 wishers 表,用于存储注册用户的名称和口令
另一个是 wishes 表,用于存储心愿说明
wishers 表包含三个字段:
id - 许愿者的唯一 ID。该字段用作主键
name
password
wishes 表包含四个字段:
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 节点。
注意: 您可以在此处 下载一组 SQL 命令以创建 MySQL wishlist 数据库。
输入测试数据
要测试应用程序,您需要使用数据库中的某些数据。下面的示例说明了如何添加两个许愿者和四个心愿。
在 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 。
注意: 您可以在此处 下载一组 SQL 命令以创建 MySQL wishlist 数据库。
后续步骤
下一课 >>
返回到教程主页
要发送意见和建议、获得支持以及随时了解 NetBeans IDE PHP 开发功能的最新开发情况,请加入
users
@
php.netbeans.org
邮件列表 。
返回至 PHP 学习资源