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)

Limiting the Number of Rows Returned


Now, when we know how to count the rows in the results set, let's see how we can fetch first N rows only. Here we have two options:

  • We can use database-specific features in the SQL query itself.

  • We can process the result set ourselves and stop after the required number of rows has been fetched.

Using Database-Specific SQL

If you have been working mainly with MySQL, then you will be familiar with the LIMIT x,y clause. For example, if we want to fetch the first five authors sorted by last name, the following query could be issued:

SELECT * FROM authors ORDER BY lastName LIMIT 0, 5;

The same thing could be done with the following query:

SELECT * FROM authors ORDER BY lastName LIMIT 5 OFFSET 0;

The first query will work for MySQL and SQLite, while the second will work for PostgreSQL as well. However, databases like Oracle or MS SQL Server don't use such syntax, so these queries will fail for them.

Processing the Top N Rows Only

As you can see, database-specific...