Skip to content

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

  1. Tener instalado un servidor local como XAMPP o WAMP.
  2. Haber iniciado los servicios Apache y MySQL.
  3. Crear una base de datos dwes y una tabla persona con algunos registros (explicado en el siguiente paso).

Configurar la Base de Datos

  1. Abrir phpMyAdmin:

  2. Accede a http://localhost/phpmyadmin.

  3. Crear la base de datos dwes:

  4. Ve a la pestaña Nueva y escribe dwes como nombre de la base de datos. Haz clic en Crear.

  5. 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: Tipo INT, longitud 11, AUTO_INCREMENT, clave primaria.
    • nombre: Tipo VARCHAR, longitud 50.
    • apellidos: Tipo VARCHAR, longitud 50.
    • telefono: Tipo VARCHAR, longitud 15.
  • 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

  1. Archivo ConexionMysqli.php:

  2. Crea un archivo llamado conexionMysqli.php en el directorio UD4/1Mysqli/

  3. 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

  1. 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

1731869780518

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

Referencias

https://www.php.net/manual/es/book.mysqli.php