Drupal 7 - Trabajar con bases de datos mediante PHP PDO
Con la transición a Drupal 7, también adoptamos el nuevo API de abstracción de base de datos de Drupal, basado en PDO. PDO ha sido utilizado desde hace tiempo en frameworks como Zend, así como en muchos otros frameworks PHP. Todo funcionaba muy bien en Drupal 6 con las consultas SQL directas, ¿por qué entonces cambiar a algo nuevo?
Primero, entendamos qué es PDO.
PDO permite migrar el código PHP que trabaja con bases de datos de un sistema de gestión de bases de datos a otro. Por ejemplo, si tu sitio estaba usando MySQL, puedes cambiar sin problemas a PostgreSQL. No estoy seguro sobre Oracle porque no lo he probado, pero también debería funcionar.
PHP Data Objects (PDO) es una extensión de PHP que proporciona una interfaz ligera y consistente para el acceso a bases de datos. El controlador de cada base de datos se implementa a través de la interfaz PDO y puede ser extendido con funciones específicas del servidor de base de datos.
PDO ofrece acceso a una capa de abstracción que a su vez se usa para manejar consultas y presentar los datos. PDO no proporciona una abstracción completa de bases de datos, no reescribe SQL ni emula características faltantes en algunos servidores. Si necesitas esas capacidades, deberías usar una capa de abstracción más avanzada. PDO es compatible con PHP 5.1 y versiones superiores, y está disponible como una extensión PECL para PHP 5. PDO requiere las nuevas características de programación orientada a objetos (OOP) incluidas en el núcleo de PHP 5 y no es compatible con versiones antiguas de PHP.
Esto significa que los programadores pueden escribir código multiplataforma de manera aún más sencilla. PDO no es una capa de abstracción como PearDB. PDO se enfoca más en el acceso a la base de datos que en ser un API completo.
Si queremos escribir módulos para Drupal 7, entonces debemos usar la sintaxis de PDO para escribir nuestras consultas, de modo que todos nuestros módulos funcionen con múltiples motores de bases de datos.