Objoo: Librería PHP para el manejo de bases de datos MySQL

Tabla de Contenidos

Uso básico

Importar la librería

Todo lo necesario para trabajar con la librería se encuentra en el archivo objoo.php.

include "objoo.php";

Conexión con la base de datos

La clase sql (clase sql: referencia) abre una conexión con la base de datos MySQL. Para abrir una conexión es necesario especificar host, usuario, contraseña y nombre de la base de datos.

El método sql::getInstance() crea un nuevo objeto de la clase o devuelve una conexión activa. Es necesario llamar a este método antes de cargar cualquier tabla de la base de datos.

//Abre una conexión con la base de datos
sql::getInstance("localhost", "dbuser", "password", "nombre_bd_a_conectar");

Seleccionar una tabla

La clase dbTable (dbTable: referencia) permite cargar una tabla de la base de datos en un objeto. Facilita métodos para recuperar, añadir, actualizar y eliminar registros.

//Selecciona una tabla existente.
$table = dbTable::get("nombre_tabla");

Seleccionar registros

Los métodos dbTable::selectAll() y dbTable::selectOne() recuperan registros de la tabla.

dbTable::selectAll() devuelve el conjunto de registros de la tabla (rowSet: referencia) que cumpla con las condiciones recibidas como parámetro. Si no recibe condiciones, devolverá todos los registros de la tabla.

$table = dbTable::get("nombre_tabla")
$rows = $table->selectAll();

dbTable::selectOne() devuelve el registro al que pertenezca el identificador recibido como parámetro. Por defecto, el identificador de la tabla es el campo PRIMARY KEY.

$table = dbTable::get("nombre_tabla")
$row = $table->selectOne("id");

Estructura del array de condiciones para seleccionar registros

El método dbTable::selectAll() puede recibir un array de condiciones. Este array acepta la siguiente estructura:

array(

where => array(
field_name=>value
),

order_by => "field_name"
order_type => "ASC | DESC"
limit => número_límite_consultas

)

field_name es el nombre del campo de la tabla que será utilizado en las condiciones de la consulta. Por ejemplo, where=>array("nombre"=>"Pedro") devolverá todos los usuarios de la tabla que su nombre sea "Pedro" (SELECT * from tabla WHERE nombre = "Pedro").

En value pueden utilizarse algunos operadores de comparación (>, <, >=, <=, != y LIKE). Si value no incluye ningún operador de comparación, se asume una comparación de igualdad. Por ejemplo, where=>array("edad"=>">18") devolverá todos los usuarios de la tabla que su edad sea superior a 18 (SELECT * from tabla WHERE edad > 18).

Para realizar consultas utilizando el lenguaje de consultas MySQL, utiliza dbTable::selectAllQuery($whereClause). $whereClause debe ser una cadena de condiciones en lenguaje de consultas MySQL (p.ej., "WHERE field = value and field2 = value2 or field3 = value3")

Recorrer los registros seleccionados

Cada registro recuperado es un objeto de la clase tableRow (clase tableRow: referencia). Los campos del registro son accesibles a través de los atributos del objeto ($row->nombre_campo).

Ejemplo con un único registro:

//Muestra el valor del campo1 del registro con identificador 'id'.
$row = $table->selectOne("id");
echo $row->campo1;

Ejemplo con múltiples registros:

//Muestra el valor de los campos 'campo1' y 'campo2' de todos los registros de la tabla.
foreach($table->selectAll() as $row){
    echo $row->campo1;
    echo $row->campo2;
}

Añadir un nuevo registro

Todo registro es un objeto de la clase tableRow. Esta clase permite visualizar, añadir, actualizar y eliminar registros, y da la posibilidad de asignar y modificar el valor de los campos de un registro desde los atributos del objeto.

El constructor de la clase recibe el nombre de la tabla en la que se insertará el registro. tableRow::add() inserta el registro.

//Crea un nuevo registro en la tabla 'nueva_tabla'.
$row = new tableRow('nueva_tabla');
$row->campo1= "valor del campo 1";
$row->campo2 = "valor del campo 2";
 
//Inserta el registro.
$row->add();

Modificar un registro

El valor de los campos de un registro recuperado puede ser modificado mediante los atributos del objeto tableRow y posteriormente actualizado en la base de datos utilizando el método tableRow::save().

//Selecciona la tabla 'nueva_tabla'.
$table = dbTable::get("nueva_tabla");
 
//Selecciona el registro con identificador '2'.
$user = $table->selectOne(2);
 
//$user es un objeto de la clase tableRow. Cada atributo del objeto se corresponde con un campo del registro.
//Modifica el valor de su atributos.
$user->nombre = "Pedro";
$user->email = "pedro@gmail.com";
 
//Actualiza el registro.
$user->save();

Modificar un conjunto de registros

El método rowSet::update() (rowSet: referencia) permite modificar un conjunto de registros previamente seleccionados de la base de datos. Este método recibe un array con el campo o campos a modificar y el nuevo valor que será asignado: array("field"=>"new_value").

//Selecciona la tabla 'nueva_tabla'.
$table = dbTable::get("nueva_tabla");

//Selecciona todos los registros de la tabla y cambia el valor del campo 'email' en cada uno de ellos.
$users = $table->selectAll();
$users->update(array("email"=>"nospam@jharo.net"));

Eliminar un registro

El método tableRow::delete() elimina el registro seleccionado.

//Selecciona la tabla 'nueva_tabla'.
$table = dbTable::get("nueva_tabla");
 
//Selecciona el usuario con identificador '5'
$user = $table->selectOne(5);
 
//Lo elimina
$user->delete();

Eliminar un conjunto de registros

El método rowSet::delete() elimina un conjunto de registros previamente seleccionados.

//Selecciona la tabla 'nueva_tabla'.
$table = dbTable::get("nueva_tabla");
 
//Selecciona todos los registros de la tabla$users = $table->selectAll();
 
//Los elimina
$users->delete();