《细说PHP》第四版 样章 第18章 数据库抽象层PDO 12

18.9  管理表books实例

在Web项目中,几乎所有模块都要和数据表打交道,而对表的管理无非就是增、删、改、查等操作,所以熟练掌握对表进行管理的这些常见操作是十分有必的。本例为了能更好地展示PDO的应用,并没有将数据表的操作封装成一个数据库操作类,而是采用了过程化的编写方式,用最直接的方式实现。

 

18.9.1  需求分析

本例主要的目标是实现对图书信息表books的管理过程,包括添加图书、修改图书、删除图书、遍历图书列表、搜索图书等操作。创建数据表books的SQL语句如下所示。

d31a82670ab5464d9fa2a5c514aacd8d.png

创建后,表的结构信息和具体的需求说明如下所示。

23833f6430ec447d881522bdd787b5a9.png

(1)在主页面上可以通过简单的菜单,获取添加图书表单、图书列表和搜索图书3个选项按钮,默认页面中显示所有图书的列表。

(2)添加图书的功能包括:录入图书名称、出版社名称、图书作者、图书价格及图书介绍,上架时间可通过获取当前系统时间进行添加,还需要上传图书的封面图片。

(3)图书列表只需要显示图书编号、图书名称、图书图片、出版社名称、图书作者、图书价格和上架时间,还要使用分页技术限制每页显示10条记录,并且每条记录都有修改和删除的操作入口。

(4)修改图书通过图书列表的入口进入修改图书,和添加图书表单界面相似,并通过传递的图书ID获取要修改图书的全部内容,填到对应的表单项中。如果有新图书的封面图片上传,还要将原图片删除。

(5)搜索图书可以指定多个搜索条件,包括图书名称、图书作者、出版社名称和图书价格范围,也可以指定其中的一个或多个作为筛选条件进行搜索,并且搜索的结果列表和图书列表是相同的,并能提示搜索的条件。当通过分页进入其他页面时,也要保持同样的搜索结果。

(6)删除图书也在图书列表中进行,为每条记录设置一个删除按钮。删除成功要返回图书列表,并且保持在当前页面中。如果是搜索结果列表,删除一条记录后还要保持原列表的状态。另外,删除一条记录的同时也要删除图书封面图片,防止产生永远也访问不到的垃圾图片。

注意:在上传图片时,需要通过缩放控制图片尺寸在一定的范围内,同时添加水印。

 

18.9.2  程序设计

根据需求,本例共需要4个可操作的模板,分别为添加图书表单、修改表单、表单及图书列表,需要在单独的文件中各自独立声明,并且所有的操作都需要提交给一个控制文件去处理,连接数据库和函数库也需要作为公共资源在独立的文件中声明。图书表管理需要声明的文件及描述如表18-8所示。

表18-8  图书表管理需要声明的文件及描述

 

8c6d1ad501bf47d0b3b2c1bdb42aa332.png

 

所有图书列表,以分页形式显示所有图书记录,同时也是搜索结果的列表页面

   

 

在index.php脚本中,需要提供进入添加图书表单、显示图书列表和搜索图书表单三个入口的链接,默认以分页形式显示全部的图书列表。另外,该脚本也可作为图书管理的控制器文件,用户的每个操作都需要提交给该脚本进行处理,并通过GET方法提交的 action 变量区分用户的动作。脚本index.php的代码如下所示:

0d9125eade064bcca498bd3b8368aa87.png

c939eb6d26fd439cb84ccaa8bde9601f.png

761217e1e12d43868445b490a9a48026.png

9ccbc456e0f64d04b545a0ffba22904e.png

 

添加图书表单是通过单击主页面中的链接入口,并在index.php脚本中通过action=add导入添加图书表单脚本文件add.inc.php的。代码如下所示:

52aba49a50cd47a78a883387aefe71c1.png

 

在添加表单中录入图书信息后,提交给index.php脚本,并通过action=insert辨别用户的操作。添加数据前,先通过导入conn.inc.php文件,创建PDO对象并与数据库建立连接,再将表单中通过POST方法提交的数据组合成INSERT语句,通过PDO发送给MySQL,然后添加到表books中。脚本conn.inc.php的代码如下所示:

dde1cec186ed41fc9f5eef9261c02431.png

另外,添加和修改图书时需要上传图书封面图片,并缩放图片尺寸至指定的范围,还要为其添加水印。同时,也需要制作一个图标文件,作为图片列表显示。图片缩放和加水印的操作,借助前面章节中介绍的FileUpload和Image类完成。将上传的处理过程声明在函数库文件func.inc.php中,代码如下所示:

cd46ee0a2e0847439fa98d6a2d17c618.png

修改图书表单是通过单击图书列表记录中的链接入口,并在index.php脚本中通过action=mod导入修改表单脚本文件mod.inc.php完成的。录入需要修改的内容后再提交给index.php处理,通过action=update辨别用户的操作。代码如下所示:

a4859422b5a447ada4e8deccc0baa062.png

 

搜索图书表单是通过单击主页面中的链接入口,并在index.php脚本中通过action=ser导入搜索图书表单脚本文件ser.inc.php完成的。录入需要搜索的内容后再提交给index.php处理,通过action=list辨别用户的操作,代码如下所示:

7d0bb209b48940039c3112a9567aea75.png

主页面中默认显示图书列表,也可以通过单击主页面中的链接入口进行图书列表显示,删除一本图书成功以后还要回到图书列表页面,搜索图书的处理和显示结果是同一个图书列表。在脚本list.inc.php中处理和显示图书列表,代码如下所示:

62953e303e7c4ac19e058f90e8deb07b.png

171a1e00a6d3435796839b1f85ae7a01.png

eb96c3cb70ba4ac6a4af24dd95463ddf.png

ff7f6abb3b384db998ba3dc2eaa6ab50.png

 

借助前面介绍的Page类来完成图书列表分页显示。删除一条记录后,还可以确保回到当前作的页面。数据表books管理的演示结果如图18-12所示。

d8c10b2434784125863a62d387276533.png

图18-12  数据表books管理的演示结果

 

18.10  小结

本章必须掌握的知识点

Ø PDO的安装。

Ø 创建PDO对象。

Ø 使用PDO的错误处理模式。

Ø PDO对预处理的操作方式。

Ø 事务处理。

Ø 分页类。

Ø 图书管理实例。

 

本章需要了解的内容

Ø 使用PDO执行SQL语句的方式[xec()和query()方式]

Ø 大数据对象的存取。

Ø PDO中常见的一些常量。

 

本章需要拓展的内容

Ø 用PDO访问其他数据库。

00424084c83b44e9b8ff4698fb0c1165.png

30b9fc424b7942fa88a58da94731e5b3.png

a35bc8ddd03f4c6ab1d7f55e7b3fd5ac.png

445363cd4b2440dd98095560b0b2edfa.png

ce81f71d20c0439591c756965bce9ef1.png

b69a6e869da04db29f17596e609e5b53.png

ed3b33f9503747409b5691b38a099710.png

919a834b32ea4eb68c56b5a91b428d7c.png

dd8a6cac1e1145bbb03993451ffaad55.png

转载于:https://my.oschina.net/u/4125915/blog/3099582

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值