eBay、Amazon.com和CNN.com有什么共同点呢?它们都是在Web界面上集成了大量数据库的应用程序。这些应用程序的流行(和强大功能)源于其可访问性和可用性;成千上万的用户能够同时访问相同的数据,而不需要在用户的计算机上安装附加软件。\r\n 本书为Web开发者创建Web数据库应用程序既提供了理论知识,又提供了实践机会。本书包括了有关PHP和MySQL语言的教程,还包括了一些背景知识,比如Internet和Web协议、关系数据库的建模与设计、会话管理,以及开放源码服务器和数据软件的安装。通过本书你将学到:·设计关系数据库和Web应用程序的体系结构。·实现搜索与浏览。·存储数据。·用户输入的有效性验证。·管理事务。·安全性支持。\r\n 本书的特色是:所有例子与脚本都来自Hugh and Dave's Online Wines网站,这是一个由作者开发的完整的在线零售网站(该风站是虚构的)。\r\n 如果你想建立一个小型或者中等规模的Web数据库应用程序,并且运行于普通的服务器上而不是每天都有上亿次用户点击的大规模网站的话,那么本书将对你有实际的指导意义。
前言\r\n\r\n第一章 数据库应用程序与Web\r\n\r\n三层体系结构\r\n客户层\r\n中间层\r\n数据库层\r\n案例研究\r\n\r\n第二章 PHP\r\n\r\nPHP简介\r\n条件和分支\r\n循环\r\n工作例子\r\n数组\r\n字符串\r\n正则表达式\r\n日期和时间函数\r\n整型和浮点型函数\r\n用户定义函数\r\n对象\r\n常见错误\r\n\r\n第三章 MySQL和SQL\r\n\r\n数据库基础\r\n快速入门指南\r\nMySQL命令解释器\r\n管理数据库、表和索引\r\n插入、更新和删除数据\r\n使用SQL SELECT进行查询\r\n联合杏询\r\n修改数据库\r\n函数\r\n关于SQL和MySQL的更多信息\r\n\r\n第四章 查询Web数据库\r\n\r\n连接到MySQL数据库\r\n格式化结果\r\n案例研究:首页面板\r\n使用PHP与其他DBMS交互\r\n\r\n第五章 用户驱动的查询\r\n\r\n用户输入\r\n利用用户输入进行查询\r\n案例研究:向前和向后浏览\r\n案例研究:生成选择列表\r\n\r\n第六章 向Web数据库写数据\r\n\r\n数据库插入、更新和删除\r\n写数据到数据库过程中的问题\r\n\r\n第七章 服务器端和客户端验证\r\n\r\nWeb数据库应用程序的验证和错误报告\r\n服务器端验证\r\n利用JavaScript进行的客户端验证\r\n\r\n第八章 会话\r\n\r\n建立保持状态的应用程序\r\nWeb上的会话管理\r\nPHP会话管理\r\n案例研究:添加会话到winestore\r\n何时使用会话\r\n\r\n第九章 认证与安全\r\n\r\nHTTP认证\r\n使用PHP进行HTTP认证\r\n使用数据库进行认证\r\nWeb数据库应用与认证\r\n保护Web上的数据\r\n\r\n第十章 winestore顾客管理\r\n\r\nwinestore应用程序概述\r\n顾客管理\r\n认政用户\r\nwinestore Include文件\r\n\r\n第十一章 winestore购物车\r\nwinestore主页\r\n购物车的体系结构\r\n管理重定向\r\n\r\n第十二章 winestore上的订货和发货\r\n\r\n完成订单\r\nHTML和电子邮件回执\r\n\r\n第十三章 相关主题\r\n\r\n自动化的辅助工作\r\n模板\r\n搜索和浏览\r\n\r\n附录一 安装指南\r\n附录二 Internet和Web协议\r\n附录三 关系型数据库的建模和设计\r\n附录四 在数据库层管理会话\r\n附录五 资源\r\n\r\n词汇表
Web数据库应用程序整合了数据库和Web。大家所熟知的Web目标(比如,在线拍卖站点、零售商店、新闻站点、讨论论坛和个性化主页等)都是Web数据库应用的例子。这些应用的流行源于它们的可访问性和可使用性:成千上万的用户可以同时访问相同的数据而不用在他们的机器上安装附加的软件。
本书结构
本书共分为13章和5个附录。第一至三章介绍了Web数据库应用程序、PHP、MySQL和SQL:
第一章,数据库应用程序与Web
讨论通常用于Web数据库应用程序的三层体系结构,本书中的Web应用程序也使用三层体系结构。本章介绍了每一层以及各层的特性,并介绍我们使用的软件工具。还简要介绍了Web协议。本章以本书的案例研究(Hugh and Dave's Online Wines)来结束。我们讨论了winestore的组件、系统需求以及开发每个组件的技术在本书哪些章节做了介绍。
第二章,PHP
介绍PHP脚本编程语言。介绍如何用PHP编程,并讨论了基本的编程结构、变量、类型、函数和技术,以及bug的常见来源。书中给出许多简短的代码例子,来说明如何用PHP编程。
第三章,MySQL和SQL
介绍MySQLDBMS以及如何使用数据库查询语言SQL与之交互。使用来自在线葡萄酒商店的例子,介绍了用于创建、删除及更新数据和数据库的SQL命令。还演示了一个较长的、例子驱动的有关在线葡萄酒商店查询的一节。本章最后以对高级主题的讨论结束,包括MySQL数据库调整和配置。第四到九章介绍开发Web数据库应用逻辑的原理和实践。
第四章,查询Web数据库
介绍利用PHP连接到MySQL DBMS的基础。解释了在与DBMS的大多数交互中使用的查询过程,并给出使用大多数PHP MySQL库函数的例子。还演示了数据库查询的结果如何格式化为HTML,并传递给Web浏览器。本章由在线葡萄酒商店案例研究的例子支持,该例展示如何建立一个中等复杂程度的查询模块。
第五章,用户驱动的查询
继续Web数据库查询的原理和实践。本章主要讲述用户驱动的查询,即由用户提供查询过程的参数。展示了数据如何编码、以便在请求中从Web浏览器发送到Web服务器,以及为了在PHP中处理进行解码。我们讨论了在处理用户数据时的安全本质,并展示确保交互式查询系统安全所需的步骤。我们的讨论由一个用户驱动的查询例子支持,其结果可以逐页浏览。
第六章,向Web数据库写数据
介绍向Web数据库写数据。写数据不同于读数据的几个原因。例如,从Web浏览器重新加载或打印页面将导致数据多次写到数据库。多用户访问同一数据库产生其他问题,比如数据被一个用户意外地更改,而另一个用户正在读该数据。讨论了如何解决与Web和多用户特性相关的问题。用一个添加和编辑在线葡萄酒商店中顾客详细信息的例子来说明其原理。
第七章,服务器端和客户端验证
本章与第六章相关,并给出用户输入验证的原理和技术。介绍了验证模型和Web数据库应用程序中使用的报告方法,并展示了这些是如何用PHP实现的,以及如何被客户端基于浏览器的JavaScript支持。
第八章,会活
介绍添加会话管理到Web数据库应用程序的原理。会话管理可用于用户与相关应用程序之间的交互,例如,一个用户可以登录和退出应用程序,并在此过程中通过一系列的步骤指导完成。展示了PHP如何管理会话,并利用一个案例研究演示该技术,即管理反馈到准备成为葡萄酒商店顾客的用户的错误。
第九章,认证与安全
展示Web安全方面的主题。告诉你PHP如何可以用于基本认证,数据库如何可以管理多用户,以及如何可以利用网络级安全套接字层确保通信的安全。我们的案例研究是在线葡萄酒商店的登录和退出过程。这扩展了我们在第八章中关于会话管理的讨论。第十到十三章展示并概括了完整的葡萄酒商店案例研究。此概括并刁;全面:假设你已经学习了第四到九章,并理解开发Web数据库应用程序的原理。我们建议你在学习第十到十三章的时候,查看、编辑和使用winestore PHP脚本。
第十章,winestore顾客管理
展示winestore中用于顾客管理的代码,以及整个应用程序中用到的通用函数。给出的代码基于第四到八章开发的例子。我们给出用于收集、验证和修改顾客详细信息的脚本。我们还给出了基于第九章用户登录和退出过程的代码。
第十一章,winestore购物车
给出葡萄酒商店购物车的代码。购物车存储在数据库中,并使用第八章的会话技术跟踪每个用户的购物车。购物车模块允许用户查看他的购物车、添加商品到购物车中、更新商品数量、删除商品和清空购物车。
第十二章,winestore上的订货和发货
给出winestore的订货和发货模块的代码。订货过程展示了如何使用第三到六章讨论的复杂数据库处理技术来将购物车转换为顾客订单。还给出订单的电子邮件确认如何发送到用户,以及订单确认如何表示为一个HTML页面。
第十三章,相关主题
结束案例研究例子并给出相关的Web数据库主题。基于第五章中的技术给出完整的搜索和浏览winestore模块。还讨论了自动查询和使用模板从HTML标记分离出脚本代码。
本书有5个附录:
附录一,安装指南
在Linux操作系统下安装Apache Web服务器、PHP和MySQL的简明指南,还包括指向其他在Linux及其他操作系统下更详细的安装指南的资源列表。
附录二,Internet和Web协议
建立在第一章基础之上、更加详细地描述了Web的工作原理。
附录三,关系型数据库的建模和设计
包含一个案例研究,就是使用实体—关系数据库建模来为winestore的系统需求建立模型。本章显示了该模型如何转换成设计,还详细介绍了用于创建winestore数据库的SQL命令。
附录四,在数据库层管理会话
本附录是第八章的一个扩展,显示了会话处理的默认PHP方法如何移动到更具可伸展性的基础数据库层。
附录五,资源
本章列出了有用的资源,包括有关全书中各个主题更多信息的Web站点和书籍。