En Spoon existe una clase que implementa todo el trabajo que podríamos realizar con las bases de datos, por medio de una serie de métodos para realizar distintos tipos de consultas. La verdad es que, si estamos acostumbrados a trabajar con las funciones de MySQL de PHP, esta librería podría resultarnos en un principio prescindible, pero lo cierto es que existen algunas funcionalidades bastante interesantes que pueden facilitarnos algunas tareas típicas.
Por ejemplo, podemos trabajar con nuestra aplicación en MySQL y al cabo de un tiempo decidir que deseamos utilizar SQLite o PostgreSQL. En el caso que tengamos una capa de abstracción de base de datos como la que nos proporciona Spoon, esa hipotética migración resultará mucho menos dolorosa, ya que simplemente tendríamos que cambiar el driver con el que iniciamos la clase SpoonDatabase y todo el resto del código permanecería igual.
require_once 'spoon/database/database.php';
$db = new SpoonDatabase('driver', 'servidor', 'usuario', 'clave', 'base de datos');
Para explicar estas liberías hemos utilizado una base de datos MySQL instalada en un Xampp, que tiene como servidor a "localhost" y el usuario "root" y sin clave, tal como es la instalación típica de este paquete. Además vamos a conectar con una base de datos que hemos llamado "probando".
$db = new SpoonDatabase('mysql', 'localhost', 'root', '', 'probando');
Como se puede apreciar, el driver que estamos utilizando en este caso es el de MySQL, que se envía en el primer parámetro. Si lo deseas, coloca cualquier cosa en vez de ese driver y Spoon te mostrará una excepción en la que podrás ver los drivers instalados en el servidor donde estás trabajando.
Una vez que hemos conectado con nuestra base de datos estamos en condición de realizar diversas acciones o consultas. Para ello utilizamos el objeto de la clase SpoonDatabase que recibimos al invocar al constructor. En la documentación se pueden ver los diferentes métodos que podemos realizar sobre el objeto, para hacer todo tipo de consultas y operaciones con la base de datos.
En el próximo artículo veremos cómo utilizar el método getVar(), que nos dará pie a realizar varias consultas y explicar cómo se puede parametrizar de una manera bastante potente esas consultas.