Cambios en el soporte a base de datos

Sobre PDO

Los Objetos de Datos PHP (PDO) se introdujeron como extensión PECL en PHP 5.0, y comenzó a formar parte del núcleo de PHP en PHP 5.1.x. La extensión PDO ofrece una interfaz consistente de acceso a bases de datos, y funciona en conjunción con drivers PDO específicos a cada bases de datos. Cada driver puede además tener funciones específicas de su propia base de datos, pero las funcionalidades básicas de acceso, tal como hacer consultas o capturar dato, se realizan por las funciones de PDO, usando el driver que se haya indicado al llamar a PDO::__construct().

Tenga en cuenta que la extensión PDO y sus drivers están pensados para construirse como extensiones compartidas. Esto permite facilitar el proceso de actualización desde PECL, sin tener que reconstruir todo PHP.

Desde el punto de vista de la versión de PHP 5.1.x, PDO está completamente preparado para probarlo y puede utilizarse en la mayoría de escenarios. Sin embargo, es importante entender que tanto PDO como sus drivers no son una herramienta madura y pueden carecer de funcionalidades específicas de un motor de bases de datos; se debe analizar cuidadosamente PDO antes de usarse en nuevos proyectos.

Por norma general, el código fuente de versiones anteriores dependerá de las extensiones de base de datos preexistentes, las cuales seguirán siendo mantenidas.

Cambios de soporte en MySQL

En PHP 4, había soporte incorporado para MySQL 3. Con la llegada de PHP 5.0 había dos extensiones de MySQL, 'mysql' y 'mysqli', diseñadas para funcionar con MySQL < 4.1 y MySQL 4.1 o superior, respectivamente. Con la llegada de PDO, que proporciona una interfaz muy rápida a las APIs de las bases de datos soportadas por PHP, el driver PDO_MYSQL puede funcionar con cualquiera de las versiones (MySQL 3, 4 or 5) en códigos escritos para PDO, dependiendo de la versión de la biblioteca MySQL usada al compilarlo. La extensión de MySQL anterior continua disponible por retrocompatibilidad, pero no viene habilitada por omisión.

Cambios de soporte en SQLite

En PHP 5.0.x, el soporte para SQLite 2 venía incorporado por omisión con la extensión sqlite, también disponible como extensión PECL para PHP 4.3 y para PHP 4.4. Con la llegada de PDO, la extensión sqlite pasa a actuar como driver 'sqlite2' de PDO; es por esto que la extensión sql de PHP 5.1.x depende de la extensión PDO.

PHP 5.1.x incorpora numerosas interfaces alternativas para sqlite:

La extensión sqlite ofrece la "clásica" API procedural/OO a sqlite que se usaba en versiones anteriores de PHP. También contiene el driver PDO 'sqlite2', que permite acceder a bases de datos SQLite 2 usando la API de PDO.

PDO_SQLITE ofrece la versión 3 del driver 'sqlite'. La versión 3 de SQLite es muy superior a la 2, y el formato de ficheros de estas dos versiones no son compatibles.

Si un proyecto basado en SQLite estuviera escrito y funcionando con una versión de PHP anterior, se podrá seguir usando ext/sqlite sin ningún problema, pero se deberá habilitar explícitamente tanto PDO como sqlite. Los nuevos proyectos deben usar PDO y el driver (versión 3) de 'sqlite', ya que es más rápido que SQLite 2, mejora la concurrencia, y soporta tanto sentencias preparadas, como columnas binarias, de forma nativa.

Se puede habilitar PDO usando la extensión SQLite. Si se deseara construir la extensión PDO como extensión compartida, se deberá construir SQLite también compartido, tal y como sucede con cualquier extensión que contenga un driver PDO.