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)

Getting the List of Available Drivers

PDO allows you to programmatically get the list of all installed drivers. The PDO::getAvailableDrivers() method can be called to return an array containing the names of the database drivers that can be used. For example, this code will print something similar to the following:

string(5) "mysql"
string(6) "sqlite"
string(7) "sqlite2"

The names of drivers, contained in this array, are the prefixes for the connection strings. Also, the same name is returned as the value of the PDO::ATTR_DRIVER_NAME attribute.


The PDO::getAvailableDrivers() method returns the names of drivers that are registered with the PDO system in the php.ini file. You may not be able to use all of these drivers on the local machine—for example, if the MySQL server is not running then the presence of a MySQL item in the returned array does not mean that you can connect to the local MySQL server, and if...