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');
//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.
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.
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.
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;
//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;
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.