Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PHP26 - Conexion A BDD 2 - Modelos
PHP26 - Conexion A BDD 2 - Modelos
com
LinkedIn v.23.06
2
Simplificando la conexión
En la anterior presentación vimos cómo conectar con una base de
datos MySQL o MariaDB mediante el conector mysqli y realizar
consultas sobre ella.
3
Simplificando la conexión
Lo ideal será separar la configuración y la conexión:
4
La clase DB
Esta es la clase DB que usa mysqli. Dispone de los métodos
estáticos: get(), query(), select(), selectAll(), insert(), update(),
delete(), total() y escape(). El método selectOne() es alias de
select().
5
La clase DB
El método estático DB::get():
6
La clase DB
Los métodos estáticos select() (o selectOne()) selectAll(), insert(),
update() y delete() son una forma rápida y fácil de ejecutar
consultas SELECT, INSERT, UPDATE y DELETE.
7
La clase DB
El método estático total() permite realizar consultas SELECT para
cálculos de totales de una forma muy sencilla.
8
Ejemplo
Probando la clase DB.
La clase DB
Bien, ahora que tenemos la clase DB, tenemos que probarla.
10
La clase DB
Para el ejemplo:
11
Ejemplo estructura de ficheros
Editar
En el Drive
Nuevo
12
Ejemplo el fichero de configuración
13
Ejemplo pruebas de select() o selectOne()
14
Ejemplo resultado
15
Ejemplo pruebas de selectAll()
16
Ejemplo resultado
17
Ejemplo prueba de insert()
18
Ejemplo resultado
19
Ejemplo prueba de update()
20
Ejemplo resultado
21
Ejemplo prueba de delete()
22
Ejemplo resultado
23
Ejemplo pruebas de totales
24
Ejemplo resultado
25
Consultas erróneas
Y finalmente vamos a probar qué pasa cuando se producen errores
en las consultas.
26
Ejemplo consulta con errores
27
Ejemplo resultado (DEBUG true)
DEBUG true
28
Ejemplo resultado (DEBUG false)
DEBUG false
29
La clase DB
Ventajas que tiene usar la clase DB respecto a no usarla:
30
El modelo (M de MVC)
Cómo son las clases que conforman el
modelo en la arquitectura MVC
Clases del modelo
En ejemplos de días anteriores, hemos trabajado con pequeños
scripts que conectaban a la base de datos, recuperaban
información y mostraban el resultado
32
El modelo Libro
A modo de ejemplo, vamos a implementar la clase Libro, que
pertenece al modelo.
33
Ejemplo tabla libros en la BDD
34
Ejemplo estructura de los ficheros
Editar
Nuevo
35
Ejemplo el fichero de configuración
36
La clase Libro
Esta es la sinopsis de la clase Libro del modelo:
Propiedades
Métodos
37
Ejemplo el modelo Libro (1/5 recuperar)
38
Ejemplo el modelo Libro (2/5 guardar)
39
Ejemplo el modelo Libro (3/5 actualizar)
40
Ejemplo el modelo Libro (4/5 borrar)
41
Ejemplo el modelo Libro (5/5 totales y toString())
42
Pruebas del modelo Libro
Ahora que ya tenemos la clase Libro del modelo, vamos a proceder
a probarla.
43
Ejemplo TEST: recuperar todos los libros
44
Ejemplo resultado
45
Ejemplo TEST: recuperar un libro
46
Ejemplo resultado
47
Ejemplo TEST: guardar un libro
48
Ejemplo resultado
49
Ejemplo TEST: actualizar un libro
50
Ejemplo resultado
51
Ejemplo TEST: borrar un libro
52
Ejemplo resultado
53
Ejemplo TEST: cálculo de totales
54
Ejemplo resultado
55
Ejercicio la clase Socio
Implementa la clase Socio del modelo.
56
Filtrado de resultados
Recuperar un conjunto de resultados
aplicando un filtro en la consulta
Aplicar un filtro
Vamos a crear ahora un método que nos permita filtrar por el
campo que queramos, pudiendo además ordenar los datos.
Debo advertir que este método funcionará bien para los campos de
texto, pero no para los numéricos, debido a la consulta SQL con un
LIKE.
58
Ejemplo filtros avanzados
59
Ejemplo método Libro::getFiltered()
60
Ejemplo prueba de Libro::getFiltered()
61
Ejemplo resultado
62
Ejercicio buscando socios
Incorpora el método getFiltered() a la clase Socio del modelo que
hiciste en el ejercicio anterior.
63