一、实验目的:
1、了解DBMS系统的功能、Web based数据库的软件组成及工具;
2、掌握数据库软件的使用方法、
3、掌握前台页面,后台数据库的基于WEB的数据库操作方法。
二、实验要求:
1、安装相关软件并浏览软件自带的帮助文件和功能菜单,
2、掌握PHP构建网页以及连接数据库的方法。
3、掌握phpmyadmin创建数据库与数据表的方法;
4、了解mysql的命令以及与php衔接的语句
5、了解网页构造的原理
三、实验设备:
计算机、数据库管理系统如DB2,mysql 等软件。
四、实验内容
1.首先创建一个名为"TEST"的数据库保存新闻相关信息。先建"news"表,字段数为"4",进入表的字段参数设置页面,第一个字段名为"id",类型选"bigint",长度值填20,属性不用填,NULL就选"NOT_NULL",意思是在添加数据时这个字段为必填,如果没填则会出错;默认部分留空行,额外就选"auto_increment",意思是该字段为自增长型,在添加一项数据时不用填这个字段它都会自动填入一数字.接着在旁边的主键那里选择上,让这个id字段作为主键,一般数据表都会创建"id"字段做主键以方便以后的操作。
建立如图所示的news表,包含四个字段。
2.新建connect.php文件,进行连接连接MYSQL数据库。
3.运行conn.php文件,没有出现报错,可知成功连接上了mysql数据库test。
4.新建“add_news.php”,用来添加新闻。
5. 新建save_news.php 保存刚刚输入的新闻。
6.运行add_news.php”,输入新闻标题和内容后点击按钮提交,网页提示插入成功,看数据库表内容发现确实添加了。
7.为方便展示后面的查询功能,插入如下数据。
8. 普通单条数据查询 read.php,查询id为5。
9. 查找多条数据 read_2.php,查找所有的数据。
10. 列出所有的新闻—— news.php。
11.新闻编辑界面—— edit_news.php。
12.列出所有可删除的新闻—— news2.php。
13. 删除选中的新闻—— del_news.php
14.保存编辑后的新闻—— save_edit_news.php。
思考题:建立以下相关数据的数据库,并用一个页面显示所有的表名,即要求用户点击该表名显示出该表所有记录。并完成插入记录,删除记录以及修改记录的功能。(所有的思考题均要求网页代码和运行后的界面,注意界面设计及美观性)
create table employees
(
eid varchar(3) not null,
ename varchar(15),
city varchar(15),
primary key(eid)
);
create table customers
(
cid varchar(4) not null,
cname varchar(15),
city varchar(15),
visits_made int(5),
last_visit_time datetime,
primary key(cid)
);
create table suppliers
(
sid varchar(2) not null,
sname varchar(15) not null,
city varchar(15),
telephone_no char(10),
primary key(sid),
unique(sname)
);
create table products
(
pid varchar(4) not null,
pname varchar(15) not null,
qoh int(5) not null,
qoh_threshold int(5),
original_price decimal(6,2),
discnt_rate decimal(3,2),
sid varchar(2),
primary key(pid),
foreign key (sid) references suppliers (sid)
);
create table purchases
(
purid int not null,
cid varchar(4) not null,
eid varchar(3) not null,
pid varchar(4) not null,
qty int(5),
ptime datetime,
total_price decimal(7,2),
primary key (purid),
foreign key (cid) references customers(cid),
foreign key (eid) references employees(eid),
foreign key (pid) references products(pid)
);
create table logs
(
logid int(5) not null auto_increment,
who varchar(10) not null,
time datetime not null,
table_name varchar(20) not null,
operation varchar(6) not null,
key_value varchar(4),
primary key (logid)
);
insert into employees values ('e00', 'Amy', 'Vestal');
insert into employees values ('e01', 'Bob', 'Binghamton');
insert into employees values ('e02', 'John', 'Binghamton');
insert into employees values ('e03', 'Lisa', 'Binghamton');
insert into employees values ('e04', 'Matt', 'Vestal');
insert into suppliers values ('s0', 'Supplier 1', 'Binghamton', '6075555431');
insert into suppliers values ('s1', 'Supplier 2', 'NYC', '6075555432');
insert into products values ('pr00', 'Milk', 12, 10, 2.40, 0.1, 's0');
insert into products values ('pr01', 'Egg', 20, 10, 1.50, 0.2, 's1');
insert into products values ('pr02', 'Bread', 15, 10, 1.20, 0.1, 's0');
insert into products values ('pr03', 'Pineapple', 6, 5, 2.00, 0.3, 's0');
insert into products values ('pr04', 'Knife', 10, 8, 2.50, 0.2, 's1');
insert into products values ('pr05', 'Shovel', 5, 5, 7.99, 0.1, 's0');
insert into customers values ('c000', 'Kathy', 'Vestal', 2, '2017-11-28 10:25:32');
insert into customers values ('c001', 'Brown', 'Binghamton', 1, '2017-12-05 09:12:30');
insert into customers values ('c002', 'Anne', 'Vestal', 1, '2018-11-29 14:30:00');
insert into customers values ('c003', 'Jack', 'Vestal', 1, '2018-12-04 16:48:02');
insert into customers values ('c004', 'Mike', 'Binghamton', 1, '2018-11-30 11:52:16');
insert into purchases values (1, 'c000', 'e00', 'pr00', 1, '2018-10-22 12:34:22', 2.16);
insert into purchases values (2, 'c001', 'e03', 'pr03', 2, '2018-12-05 09:12:30', 2.80);
insert into purchases values (3, 'c002', 'e03', 'pr00', 1, '2018-11-29 14:30:00', 2.16);
insert into purchases values (4, 'c000', 'e01', 'pr01', 5, '2018-11-28 10:25:32', 6.00);
insert into purchases values (5, 'c004', 'e04', 'pr02', 3, '2018-11-30 11:52:16', 3.24);
insert into purchases values (6, 'c003', 'e02', 'pr05', 1, '2018-12-04 16:48:02', 7.19);
1.新建test2数据库,然后建表,如下图所示。
2.新建conn2.php用于连接数据库。
3.新建table.php,可以查看所有的表。
4.新建show_table.php,可以对单个表进行数据的查看。
5.新建insert.php,可以插入新的数据于表中。
6.新建delete.php,可以删除表格中的数据。
五.问题分析(碰到什么问题,如何解决)
1.运行conn.php检验是否成功连接数据库时报错,如下图所示。
分析报错原因后发现关键字user,再去观察代码,发现username没有填入root。
更改后再次运行,发现没有报错了,成功连接。
2.插入新闻到数据表时失败。
仔细分析php代码后发现php代码没有问题,然后去观察数据库,发现是数据表new的add_time字段写成了add__time。
更改后再次插入就成功了。
六.实验心得
通过此次实验,加深了对php和数据库系统的理解,学会了构建网页和数据库的联系,并实现了通过网页上的交互对后端数据库的更改。
(by 归忆)