Book Image

Learning PHP Data Objects

By : Dennis Popel
Book Image

Learning PHP Data Objects

By: Dennis Popel

Overview of this book

PDO is lighter, faster, and more powerful than existing PHP data abstraction interfaces. PDO is a common interface to different databases that must be used with a database-specific PDO driver to access a particular database server: the PDO extension does not provide a database abstraction by itself; it doesn't rewrite SQL, emulate missing database features, or perform any database functions using by itself. It performs the same role as other classic database abstraction layers such as ODBC and JDBC: it's a query abstraction layer that abstracts the mechanism for accessing a database and manipulating the returned records; each database driver that implements the PDO interface can also expose database-specific features as regular extension functions. ¬ PDO ships with PHP 5.1, and is available as an extension for PHP 5.0; it requires the new object-oriented features of PHP 5, and cannot run with earlier versions of PHP.This book will teach you how to use the PDO, including its advanced features. Readers need to be aware of the basics of data abstraction and should be familiar with PHP.
Table of Contents (13 chapters)

Chapter 5. Handling Rowsets

Real life dynamic, data-driven web applications are very different from each other, as their complexity is dictated by the purposes that they serve. However, almost all of them have some common characteristics. One of these characteristics is the ability to paginate long result lists for ease of use and faster page loading times.

Correct pagination requires the calculation of the number of total rows returned from the database, the page size (which is a configurable option), and the number of current page. Based on this data, it is easy to calculate the starting offset into the result set to display only a subset of rows.

In this chapter, we will examine:

  • How to retrieve the number of rows in the result sets returned by PDO

  • How to fetch results starting at a specified row number

Retrieving the Number of Rows in a Result Set

As we have already discussed in Chapter 2, the PDOStatement::rowCount() method does not return the correct number of rows in a query. (It returns...