零、序言

本书将向您介绍可用的 PHP 最重要的扩展之一,从 PHP 5.0 版开始,即 PHP 数据对象,通常称为 PDO。

PHP 因其简单易用而成为一种非常流行的 web 编程语言。这一日益成功的关键因素之一是内置了访问许多流行的关系数据库管理系统(RDBMS)的可能性,例如 MySQL、PostgreSQL 和 SQLite 等。今天,大多数现有和新创建的 web 应用程序都与这些数据库互连,以生成动态的、数据驱动的网站。

虽然大多数支持 PHP 的 web 服务器仍在运行 5.0 之前的 PHP 版本,但此新版本引入的增强功能和性能改进将使 PHP 5 在未来几年中在各个级别得到广泛接受。这就要求我们现在就开始熟悉这个版本中的所有高级功能。

这本书涵盖的内容

第 1 章概述了 PDO 以及一些功能,如用于创建连接的单一接口、连接字符串、统一语句方法、异常的使用和单一错误代码系统。

第 2 章通过创建示例数据库,然后创建连接对象,帮助您开始学习 PDO。它还引入了 PDO 语句类。

第 3 章介绍了各种错误处理过程及其用途。

第四章介绍准备好的报表。它处理的是在不绑定值的情况下使用准备语句、绑定变量以及将参数绑定到准备语句。我们还将研究如何使用流处理 blob,以避免查询失败的风险。

第 5 章帮助我们确定返回结果集中的行数。此外,我们还遇到了一个新概念可滚动游标,它允许我们从结果集中获取行的子集。

第 6 章介绍 PDO 的高级用途,包括设置 PDOPDOStatement类的连接参数、事务和方法。

第 7 章给出了一个示例,其中讨论了 MVC 应用程序的方法部分的创建。

附录 A解释了继承、封装、多态性和异常处理等面向对象的特性。

这本书是给谁的

这本书的目标是 PHP 程序员,他们正在考虑迁移到 PHP5 并使用新的数据库连接抽象库 PHP 数据对象。虽然 PDO 是完全面向对象的,但需要熟悉这种编程范式。不熟悉 PHP 5 面向对象特性的新手用户可以考虑首先阅读附录 A,以便他们可以遵循本书中的代码示例。

我们假设读者在创建表和进行简单的 SELECT 查询以及更新时熟悉 SQL。我们的示例基于 MySQL 和 SQLite 数据库,因为它们是最常用的选项,也是最便宜的托管提供商唯一可用的选项。

在本书的最后,我们将展示一个更高级的示例,它可能会引起对 SQL 和编程概念有更深入了解的专家程序员的兴趣。

公约

在这本书中,你会发现许多不同类型的文本可以区分不同类型的信息。下面是这些风格的一些例子,并解释了它们的含义。

代码有三种样式。文本中的代码如下所示:“PostgreSQL 用户可能已经使用了 pg_prepare()pg_execute()对。”

代码块的设置如下所示:

// Assume we also want to filter by make
$sql = 'SELECT * FROM cars WHERE make=?';
$stmt = $conn->prepare($sql);
$stmt->execute(array($_REQUEST['make']));

当我们希望提请您注意代码块的特定部分时,相关行或项目将以粗体显示:

// Assume we also want to filter by make
$sql = 'SELECT * FROM cars WHERE make=?';
$stmt = $conn->prepare($sql);
$stmt->execute(array($_REQUEST['make']));

新术语重要词语以粗体字体引入。例如,您在屏幕上、菜单或对话框中看到的文字会出现在我们的文本中,如下所示:“您只需单击浏览器中图书列表页面上的作者链接即可。”。

重要注释显示在这样的框中。

笔记

提示和技巧如下所示。

读者反馈

我们欢迎读者的反馈。让我们知道你对这本书的看法,你喜欢什么或可能不喜欢什么。读者反馈对于我们开发您真正从中获益最多的标题非常重要。

要向我们发送一般反馈,只需发送电子邮件至<[feedback@packtpub.com](mailto:feedback@packtpub.com)>,确保在邮件主题中提及书名。

如果您需要并希望看到我们出版一本书,请在www.packtpub.com或电子邮件<[suggest@packtpub.com](mailto:suggest@packtpub.com)>上的建议书名表格中向我们发送注释。

如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请参阅我们的作者指南,网址为www.packtpub.com/authors

客户支持

既然您是一本 Packt 图书的骄傲拥有者,我们有很多东西可以帮助您从购买中获得最大收益。

下载本书的示例代码

访问http://www.packtpub.com/support ,并从标题列表中选择本书,以下载本书的任何示例代码或额外资源。然后将显示可供下载的文件。

可下载的文件包含如何使用它们的说明。

勘误表

虽然我们已尽一切努力确保内容的准确性,但错误确实会发生。如果您在我们的一本书中发现错误,可能是文本或代码中的错误,如果您能向我们报告,我们将不胜感激。通过这样做,你可以使其他读者免于沮丧,并有助于改进本书的后续版本。如果您发现任何勘误表,请访问进行报告 http://www.packtpub.com/support ,选择您的书籍,点击提交勘误表链接,输入勘误表的详细信息。一旦您的勘误表得到验证,您的提交将被接受,并且勘误表将添加到现有勘误表列表中。通过从中选择您的标题,可以查看现有勘误表 http://www.packtpub.com/support

问题

如果您对本书的某些方面有问题,可以通过<[questions@packtpub.com](mailto:questions@packtpub.com)>联系我们,我们将尽力解决。