使用 PHP3 在 Web 上构建数据库应用程序

作者:Gaelyne R. Gasson
  • 作者:Craig Hilton 和 Jeff Willis

  • 出版社:Addison-Wesley

  • URL: http://www.php123.com/

  • 价格:39.95 美元

  • ISBN:0-201-65771-6

  • 评论人:Gaelyne R. Gasson

本书以乐观的前言开始,介绍了 PHP3 在 Web 应用程序中的易用性。前言告诉我们,本书“重点介绍了使用 PostgreSQL 和 MySQL 这两个强大的数据库管理系统的应用程序”。前言建议在本书的配套网站上进行 30 分钟的“试驾”;不幸的是,在撰写本文时,该网站不可用。一条注释表明他们的硬盘驱动器崩溃了,正在重建系统。[该网站此后已恢复,除登录外,一切正常。——编者]

第一章概述了本书。第 2 章至第 11 章被称为与基于 Web 的技术相关的背景信息。示例应用程序构成了第 12 章,随后是第 13 章中的几页技术注释。读者此时才读完本书的三分之一,可能会惊讶地发现,PHP3 语言和函数参考的十六页索引构成了剩余页面的大部分。

书中包含两个附录。第一个附录涉及 CGI 变量;第二个附录涉及 MySQL 和 PostgreSQL 两种不同配置之间的时间比较。阅读清单没有专门涉及 PHP、PostgreSQL 或 MySQL。列出的参考文献是通用编程和 Web 开发的优秀材料,但该列表范围广泛,而不是针对本书的主题。书的末尾还有两个额外的索引:一个按字母顺序列出的 PHP3 函数索引,另一个是本书本身的索引。

本书附带一张 CD-ROM,其中包含 PHP3、PostgreSQL、最新 GPL 版本的 MySQL、各种 RFC 文本文件和 W3C 的 HTML 3.2、4.0 和 CSS2 规范。根据第 1 章中的列表,CD 还应包含“本书中构建的所有代码”,但事实并非如此。公平地说,CD 确实包含了从 v2.0 到 v3.0.12 的每个 PHP 版本的完整源代码,格式为 tar.gz,以及用于 PHP 和 PostgreSQL 的多个 Linux Red Hat RPM。它还包含多种格式的 PHP3 手册。

通常,您会期望在阅读如何安装软件之前先阅读关于操作系统选择的讨论。然而,UNIX(更具体地说是 Linux)在第 7 章“为什么选择 UNIX(为什么不选择 Windows?)”中简要介绍,而第 1 章描述了如何从 CD 安装提供的软件。

第 2 章讨论了 PHP,下一章介绍了数据库、SQL 和 PHP。紧随其后的是关于 UNIX(和 Linux)的简短章节,然后是关于 Internet 和浏览器基础知识的讨论。从逻辑上讲,人们会期望流程是先 UNIX(如果有的话),然后是 Internet 和浏览器基础知识、HTML、PHP,然后是数据库。

PostgreSQL 章节包含一个图表,比较了它的功能与其他数据库(如 Oracle 8、Sybase 11 和 MiniSQL)的功能。奇怪的是,该图表没有任何关于 MySQL 的参考。该章节还包含示例,展示了使用 PHP3 连接到 PostgreSQL 数据库的语法以及如何进行插入和选择。

关于 MySQL 的章节似乎缺少一些信息。读者没有像上一章那样遵循相同的模式,而是获得了关于 MySQL 历史的三个简短段落和七个段落,讨论了与 PostgreSQL 相比的速度差异。如果这是 MySQL 章节的开头,并且继续以类似于 PostgreSQL 章节的格式涵盖连接到 MySQL 数据库和其他 MySQL 信息的内容,一切都会很好,但这只是对软件速度的简要描述。甚至没有介绍命令的格式。这本来不是问题,但本书的前言说它“重点介绍了使用 PostgreSQL 和 MySQL 的应用程序。” 两种数据库类型都应该得到相同类型的报道。就目前而言,MySQL 完全可以“扫入”简短的(三页)第 6 章“其他 SQL 数据库”。

PHP3 语言章节相当详细,并使用了几个示例。其中许多包含幽默,以帮助教授函数以及如何使用它们。用于类的示例因其幽默而最令人难忘。我发现这一章信息量最大,但希望花更多的时间讨论如何在实际应用程序中使用类。

第 11 章回到了对数据库和 SQL 以及数据库设计的更全面的讨论。似乎只简要介绍了数据库中使用的列(字段)类型,例如字符串、数字、日期等,尽管每种类型都在给出的示例范围内提及。一本关于构建数据库应用程序的入门书籍应该提供更多关于此主题的信息,以便解释一些更常见选择的优点和缺点。我期望看到示例的格式首先是 PostgreSQL,然后是 MySQL,以显示两种数据库类型之间的相似之处和重要差异,但事实并非如此。

应用程序包括 Hello World、基于文件的计数器、基于数据的计数器、实时图形、Jeff 的超级表单(Web 到电子邮件表单)、特定表单处理器(将信息存储在数据库中的 Web 到电子邮件表单)、查询应用程序和登录身份验证(允许访问页面的用户存储在数据库中)。

应用程序部分有许多错别字,希望在本书的下一版中删除。经验尚可的读者应该能够发现大多数错误,但没有经验的用户可能无法发现。例如,讨论第二个应用程序的文本使用了与“完整代码”列表中使用的变量不同的变量——$counter 在完整列表之后两页神秘地变为 $tcounter

实时图形应用程序展示了如何使用基于用户输入的文本构建运行时图形“按钮”。但是,没有充分解释为了使此代码工作,必须存在一个现有的图形(“image/logo1.gif”)。也许作者认为代码(和图形)会包含在 CD 中。一旦收集到合适的图像文件,示例代码就可以按描述工作。初学者可能会感到沮丧,并在进一步深入之前放弃。

同样,所有数据库应用程序都仅使用 PostgreSQL 列出。如果本书的扉页仅列出一种数据库类型,这可能是可以原谅的。尝试按给定的示例使用时,与 MySQL 一起使用需要进行大量修改。

在每个应用程序之后,在一个标记为“故障排除”的部分中,读者被告知“可能会出现什么问题?大约一百万件事情”和“直接在 Readers Only PHP3 Web Site 上试用您的应用程序”。每个应用程序之间都逐字逐句地重复相同的段落。简短列出最常见的错误类型会更合适。

本书的大部分内容是“PHP3 的语言和函数参考”,正如前言中所述,本节不是 PHP3 手册的重复。项目按功能类别列出,每个项目都包含一个关于如何使用它的简短示例。在需要的地方,在清晰的方框区域中给出关于该项目的更多信息。它为 PHP3 提供了一个方便的离线参考,并且似乎投入了大量的时间和精力。

使用 PHP3 在 Web 上构建数据库应用程序 名不副实。它确实是一本合理的 PHP3 参考书,并且以印刷形式拥有它很好。使用的写作风格乐观而令人愉快,涵盖详细信息的部分清晰易懂。问题在于本书的组织结构、大量错别字和遗漏的细节。

Building Database Applications on the Web Using PHP3
Gaelyne Gasson (gaelyne@videocam.net.au) 是南澳大利亚的一位 Web 管理员,也是 Commodore 电脑的爱好者。
加载 Disqus 评论