UD 4 Mysqli
RA 6 Desarrolla aplicaciones web de acceso a almacenes de datos, aplicando medidas para mantener la seguridad y la integridad de la información.
- a) Se han analizado las tecnologías que permiten el acceso mediante programación a la información disponible en almacenes de datos.
- b) Se han creado aplicaciones que establezcan conexiones con bases de datos.
- c) Se ha recuperado información almacenada en bases de datos.
- d) Se ha publicado en aplicaciones web la información recuperada.
Mysqli
La extensión mysqli
es específica para trabajar con bases de datos MySQL. Ofrece mejoras respecto a la antigua extensión mysql
, que ya está obsoleta.
- Soporta tanto programación procedural como orientada a objetos.
- Permite consultas preparadas para evitar inyecciones SQL.
- Soporta conexiones persistentes.
- Ofrece funciones específicas de MySQL, como el uso de múltiples resultados (multi-query).
Base de Datos
En primer lugar, crearemos una base de datos llamada dwes
, donde crearemos una tabla llamada usuarios y mostraremos los resultados.
Requisitos
- Tener instalado un servidor local como XAMPP o WAMP.
- Haber iniciado los servicios Apache y MySQL.
- Crear una base de datos
dwes
y una tablapersona
con algunos registros (explicado en el siguiente paso).
Configurar la Base de Datos
-
Abrir phpMyAdmin:
-
Accede a
http://localhost/phpmyadmin
. -
Crear la base de datos
dwes
: -
Ve a la pestaña Nueva y escribe
dwes
como nombre de la base de datos. Haz clic en Crear. - Crear la tabla mediante script sql:
CREATE TABLE persona (
id int(11) NOT NULL AUTO_INCREMENT,
nombre tinytext NOT NULL,
apellidos text NOT NULL,
telefono tinytext NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
INSERT INTO persona (id, nombre, apellidos, telefono)
VALUES
(1,'Pedro','Ramirez','123'),
(2,'Juan','Serrano','456'),
(3,'Rafa','López','789'),
(6,'Antonio','Gómez','01254');
o puedes crear la tabla persona manualmente
:
- Selecciona la base de datos
dwes
. - En el campo Nombre de la tabla, escribe
persona
y elige 4 columnas. - Configura las columnas de la tabla:
id
: TipoINT
, longitud11
, AUTO_INCREMENT, clave primaria.nombre
: TipoVARCHAR
, longitud50
.apellidos
: TipoVARCHAR
, longitud50
.telefono
: TipoVARCHAR
, longitud15
.
- Haz clic en Guardar.
Insertar datos de prueba:
- Selecciona la tabla
persona
. - Ve a la pestaña Insertar e introduce algunos registros:
- Registro 1:
id=1
,nombre=Juan
,apellidos=Pérez
,telefono=123456789
. - Registro 2:
id=2
,nombre=Ana
,apellidos=García
,telefono=987654321
.
ConexionMysqli.php
-
Archivo ConexionMysqli.php:
-
Crea un archivo llamado
conexionMysqli.php
en el directorio UD4/1Mysqli/ - Escribe el código para la conexión:
<?php
// 1. CONEXIÓN con la BBDD:
// "SERVIDOR", "USUARIO", "CONTRASEÑA", "BASE DE DATOS"
try {
$conexion = mysqli_connect("localhost", "root", "", "dwes");
} catch (Exception $e) {
echo "<br> 1. Se ha producido el siguiente error: " . $e->getMessage();
echo "<br> 2. Falló la conexión: " . mysqli_connect_error();
exit();
}
// 3. CONSULTA A LA BASE DE DATOS
$consulta = "SELECT * FROM `persona`";
$listaUsuarios = mysqli_query($conexion, $consulta);
// 4. COMPROBAMOS SI EL SERVIDOR NOS HA DEVUELTO RESULTADOS
if ($listaUsuarios) {
// RECORREMOS CADA RESULTADO QUE NOS DEVUELVE EL SERVIDOR
foreach ($listaUsuarios as $usuario) {
echo "
$usuario[id]
$usuario[nombre]
$usuario[apellidos]
$usuario[telefono]
<br>
";
}
}
?>
Documentación del Código
- Instrucción para la conexión con la base de datos:
<?php
$conexion = mysqli_connect("localhost", "root", "", "dwes");
- localhost: Dirección del servidor.
- root: Usuario predeterminado de MySQL en XAMPP.
- "": Contraseña predeterminada vacía en XAMPP.
- dwes: Nombre de la base de datos.
- Manejo de errores:
catch (Exception $e) {
echo "<br> 1. Se ha producido el siguiente error: " . $e->getMessage();
}
- Si la conexión falla, el código captura el error e imprime el mensaje correspondiente.
- Consulta a la base de datos:
$consulta = "SELECT * FROM `persona`";
$listaUsuarios = mysqli_query($conexion, $consulta);
- Realiza una consulta SQL para obtener todos los registros de la tabla
persona
. - Recorrido de resultados:
<?php
foreach ($listaUsuarios as $usuario) {
echo "
$usuario[id]
$usuario[nombre]
$usuario[apellidos]
$usuario[telefono]
<br>
";
}
- Utiliza un bucle
foreach
para recorrer los resultados y mostrar cada registro en pantalla.
Resultado
Si todo ha ido bien, obtendrás los resultados de la base de datos
Actividad
ProyectoUD4-PDO
La idea de esta unidad es aplicar las nuevas características adquiridas en un proyecto haciendo uso de la clase PDO para para accedera una base de datos
Como siempre, puedes ver los requisitos en el apartado Entregable