PHP PDO

La extensión PHP Data Objects (PDO) define una interfaz ligera y consistente para acceder a bases de datos desde PHP.

PDO proporciona una capa de abstracción de acceso a datos, lo que significa que, sin importar qué base de datos se use, se pueden utilizar las mismas funciones (métodos) para consultar y obtener datos.

PDO se distribuyó con PHP 5.1, también está disponible en la extensión PECL de PHP 5.0, y no puede ejecutarse en versiones anteriores de PHP.


Instalación de PDO

Puedes verificar si la extensión PDO está instalada mediante la función phpinfo() de PHP.

Instalar PDO en sistemas Unix

En Unix o Linux necesitas agregar las siguientes extensiones:

extension=pdo.so

Usuarios de Windows

PDO y todos los controladores principales se distribuyen con PHP como extensiones compartidas. Para activarlos, simplemente edita el archivo php.ini y agrega las siguientes extensiones:

extension=php_pdo.dll
Además, existen las siguientes extensiones de base de datos correspondientes:

;extension=php_pdo_firebird.dll
;extension=php_pdo_informix.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll

Después de configurar estos ajustes, necesitamos reiniciar PHP o el servidor web.

A continuación, veamos un ejemplo concreto. El siguiente es un ejemplo de conexión a una base de datos MySQL usando PDO:

Ejemplo

<?php
$dbms='mysql';     //Tipo de base de datos
$host='localhost'; //Nombre del host de la base de datos
$dbName='test';    //Base de datos utilizada
$user='root';      //Nombre de usuario de la conexión a la base de datos
$pass='';          //Contraseña correspondiente
$dsn="$dbms:host=$host;dbname=$dbName";


try {
    $dbh = new PDO($dsn, $user, $pass); //Inicializar un objeto PDO
    echo "Conexión exitosa<br/>";
    /* También puedes realizar una operación de búsqueda
    foreach ($dbh->query('SELECT * from FOO') as $row) {
print_r($row); //Puedes usar echo($GLOBAL); para ver estos valores
    }
    */

    $dbh = null;
} catch (PDOException $e) {
    die ("Error!: " . $e->getMessage() . "<br/>");
}
//Por defecto esta no es una conexión persistente. Si necesitas una conexión persistente a la base de datos, debes agregar un parámetro al final: array(PDO::ATTR_PERSISTENT => true) quedando así:
$db = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));

?>

¿Muy sencillo, verdad? A continuación, veamos en detalle la explicación específica de PHP PDO:

Otras extensiones