Operaciones de inserción, actualización y borrado con SpoonDatabase

  • Por
Vemos cómo hacer el insert, update y delete mediante la clase para abstracción de base de datos que nos ofrece las librerías Spoon.
Estamos explicando cómo utilizar la clase SpoonDatabase para crear una capa de abstracción de base de datos con las Librerías Spoon para PHP5. En capítulos anteriores ya comenzamos a tratar cosas básicas acerca de este tema, por lo que os recomendamos acceder a los artículos donde se comenzó a analizar la clase para abstracción de base de datos en PHP 5.

En el presente artículo veremos las operaciones de inserción, actualización y borrado de registros. Observaremos que el uso de la clase SpoonDatabase simplifica bastante la implementación de estas operaciones básicas sobre base de datos.

A modo de recordatorio, antes de poder hacer cualquier cosa con la base de datos tenemos que conectar con ella, para lo que disponemos del constructor de la clase SpoonDatabase, al que le tenemos que enviar los parámetros para la conexión:

//creo una conexión con la base de datos
$db = new SpoonDatabase('mysql', 'servidor', 'usuario', 'la clave', 'base_de_datos_a_conectar');

Nota: Por supuesto, necesitaremos haber incluido el código de la clase SpoonDatabase, en el archivo de las librerías database.php, tal como se explicó anteriormente.

Operación de inserción

Comenzaremos explicando cómo insertar registros en la base de datos utilizando el método insert() de la clase SpoonDatabase. Simplemente tenemos que enviarle el nombre de la tabla donde queremos insertar y un array asociativo con los datos a insertar en el registro que se está creando.

//Array con los datos del usuario
$datos_usuario = array("nombre_completo" => "Julio Casacudo", "email" => "julio@casacudo.com", "password" => "loquesea");

//operación de inserción
$id_usuario = $db->insert('usuario', $datos_usuario);

//muestro el dato que me devuelve insert()
echo "El identificador del usuario insertado es: " . $id_usuario;

Como se ha visto, la inserción consta de dos pasos básicos. Primero la creación del array con los datos del registro a insertar. Es un array asociativo con todos los valores de todos los campos que queremos introducir.

Nota: el campo id_usuario no lo enviamos porque en la tabla se ha puesto como autonumérico.

Luego hacemos la llamada al método insert(), que recibe los mencionados parámetros y devuelve el identificador del registro insertado.

Por último, a modo de confirmación, mostramos con un echo en la página el identificador del registro que se ha insertado.

Operación de actualización

La operación de actualización, o update, se realiza de manera bastante similar a la inserción, en el sentido en que también necesitamos un array asociativo con los datos a actualizar en el/los registro/s.

Además, al metodo update() le enviaremos opcionalmente un par de parámetros para definir la cláusula where, de modo que podamos especificar qué registros deben ser actualizados. De momento veamos un ejemplo todavía sin cláusula where.

//actualizo registros con update
$datos_prueba = array("campo" => "valor");
$filas_afectadas = $db->update('tabla_prueba', $datos_prueba);

El método update(), como se puede ver en el código anterior, devuelve el número de registros que han sido actualizados por medio de la consulta.

Ahora veamos cómo construir la parte del where en la consulta de actualización, aunque realmente funciona igual que los where que vimos al explicar las consultas de selección (select).

Una posibilidad es escribir tal cual la parte del where en el tercer parámetro.

$db->update('tabla_prueba', $datos_prueba, "id=1");

Aquí estamos indicando que se actualicen los registros con id=1. Otra posibilidad es parametrizar con variables la parte del where, indicando los valores en un cuarto parámetro.

$db->update('tabla_prueba', $datos_prueba, "nombre=?", $valor_nombre);

Aquí estamos indicando que se actualicen los registros con nombre igual que lo que haya en la variable $valor_nombre.

Nota: si no te acuerdas bien de las posibilidades de parametrización de la cláusula where, te recomendamos leer el artículo del getVar() y fijarte en los puntos: "Parametrizar un dato en una consulta SQL" y "Parametrizar varios datos en una consulta SQL"

Podemos ver a continuación un ejemplo de actualización del nombre y la clave de uno de los usuarios de la tabla_usuario (el que tiene el id_usuario=66).

//actualizo usuario
$datos_a_cambiar = array("nombre_completo" => "Albertito Tito", "password" => "laluna");
$filas_afectadas = $db->update('usuario', $datos_a_cambiar, "id_usuario=?", 66);

echo "El número de registros actualizados es: " . $filas_afectadas;

Operación de borrado

Por último nos queda por ver la forma de hacer una operación de borrado, osea, un delete de uno o varios registros de una tabla. Para ello utilizamos el método delete() que recibe tres parámetros, la tabla, el where y la parametrización del where.

//borro un usuario
$filas_afectadas = $db->delete('usuario', "id_usuario=?", 3);

El usuario que se borrará con el anterior delete es el que tiene id_usuario=3. Además, como se puede ver, el método delete() devuelve el número de registros que fueron eliminados con dicha instrucción, que podríamos mostrar luego en la página así:

echo "El número de registros borrados es: " . $filas_afectadas;

Conclusión

Con las instrucciones vistas en esta página (insert, update y delete) y las que hemos visto para la selección de elementos en artículos anteriores del manual de Spoon, ya sabríamos cómo realizar las operaciones básicas para acceso a base de datos, sin embargo, existen otros métodos que podría ser interesante conocer para realizar algunas operaciones más avanzadas.

Recordar que en la documentación de las librerías Spoon encontraréis otra serie de métodos interesantes, que nosotros veremos en artículos siguientes.

Autor

Miguel Angel Álvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir