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)

Further Thoughts


The model developed in this chapter, needs some improvements in at least two areas, if you want to use it in a real-life application. We didn't create methods in the model that would provide the functionality of the editBook.php and editAuthor.php files. However, you should now be ready to add this functionality by yourself. We will provide you with some tips:

  • Create the Book::update() and Author::update() methods. These methods should accept parameters that reflect the properties of each object (for the Author class, this should be first name, last name, and biography).

  • These methods should use prepared statements to update the corresponding records in the database (based on the $this->id value).

  • The Model class should be extended with two more methods, Model::createBook() and Model::createAuthor(). These methods should accept the same list of parameters as Book::update() and Author::update(). Both should insert a row based on the passed parameters, into the relevant table...