En este tema, aprenderemos a realizar operaciones CRUD (Crear, Leer, Actualizar y Eliminar) en una base de datos MySQL utilizando PHP. CRUD es un acrónimo que representa las cuatro operaciones básicas que se pueden realizar en una base de datos.

  1. Conectando a la Base de Datos

Antes de realizar cualquier operación CRUD, necesitamos conectarnos a la base de datos. A continuación, se muestra un ejemplo de cómo hacerlo:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "mi_base_de_datos";

// Crear conexión
$conn = new mysqli($servername, $username, $password, $dbname);

// Verificar conexión
if ($conn->connect_error) {
    die("Conexión fallida: " . $conn->connect_error);
}
echo "Conexión exitosa";
?>

  1. Crear (Create)

Para insertar datos en una tabla, utilizamos la sentencia SQL INSERT INTO. Aquí hay un ejemplo de cómo insertar un nuevo registro en una tabla llamada usuarios:

<?php
$sql = "INSERT INTO usuarios (nombre, email, edad) VALUES ('Juan', '[email protected]', 25)";

if ($conn->query($sql) === TRUE) {
    echo "Nuevo registro creado exitosamente";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}
?>

  1. Leer (Read)

Para leer datos de una tabla, utilizamos la sentencia SQL SELECT. Aquí hay un ejemplo de cómo seleccionar y mostrar todos los registros de la tabla usuarios:

<?php
$sql = "SELECT id, nombre, email, edad FROM usuarios";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // Salida de datos de cada fila
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Nombre: " . $row["nombre"]. " - Email: " . $row["email"]. " - Edad: " . $row["edad"]. "<br>";
    }
} else {
    echo "0 resultados";
}
?>

  1. Actualizar (Update)

Para actualizar datos en una tabla, utilizamos la sentencia SQL UPDATE. Aquí hay un ejemplo de cómo actualizar el email de un usuario específico:

<?php
$sql = "UPDATE usuarios SET email='[email protected]' WHERE id=1";

if ($conn->query($sql) === TRUE) {
    echo "Registro actualizado exitosamente";
} else {
    echo "Error actualizando el registro: " . $conn->error;
}
?>

  1. Eliminar (Delete)

Para eliminar datos de una tabla, utilizamos la sentencia SQL DELETE. Aquí hay un ejemplo de cómo eliminar un usuario específico:

<?php
$sql = "DELETE FROM usuarios WHERE id=1";

if ($conn->query($sql) === TRUE) {
    echo "Registro eliminado exitosamente";
} else {
    echo "Error eliminando el registro: " . $conn->error;
}
?>

Ejercicio Práctico

Ejercicio 1: Crear una Tabla y Realizar Operaciones CRUD

  1. Crear una tabla llamada productos con las siguientes columnas:

    • id (INT, AUTO_INCREMENT, PRIMARY KEY)
    • nombre (VARCHAR(50))
    • precio (DECIMAL(10, 2))
    • cantidad (INT)
  2. Insertar tres productos en la tabla productos.

  3. Leer y mostrar todos los productos de la tabla productos.

  4. Actualizar el precio de uno de los productos.

  5. Eliminar uno de los productos de la tabla.

Solución

<?php
// Conexión a la base de datos
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "mi_base_de_datos";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Conexión fallida: " . $conn->connect_error);
}

// 1. Crear la tabla 'productos'
$sql = "CREATE TABLE productos (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    nombre VARCHAR(50) NOT NULL,
    precio DECIMAL(10, 2) NOT NULL,
    cantidad INT(6) NOT NULL
)";

if ($conn->query($sql) === TRUE) {
    echo "Tabla 'productos' creada exitosamente<br>";
} else {
    echo "Error creando la tabla: " . $conn->error . "<br>";
}

// 2. Insertar tres productos
$sql = "INSERT INTO productos (nombre, precio, cantidad) VALUES 
('Producto1', 10.50, 100),
('Producto2', 20.00, 200),
('Producto3', 30.75, 300)";

if ($conn->query($sql) === TRUE) {
    echo "Productos insertados exitosamente<br>";
} else {
    echo "Error insertando productos: " . $conn->error . "<br>";
}

// 3. Leer y mostrar todos los productos
$sql = "SELECT id, nombre, precio, cantidad FROM productos";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Nombre: " . $row["nombre"]. " - Precio: " . $row["precio"]. " - Cantidad: " . $row["cantidad"]. "<br>";
    }
} else {
    echo "0 resultados<br>";
}

// 4. Actualizar el precio de un producto
$sql = "UPDATE productos SET precio=25.00 WHERE id=2";

if ($conn->query($sql) === TRUE) {
    echo "Producto actualizado exitosamente<br>";
} else {
    echo "Error actualizando el producto: " . $conn->error . "<br>";
}

// 5. Eliminar un producto
$sql = "DELETE FROM productos WHERE id=3";

if ($conn->query($sql) === TRUE) {
    echo "Producto eliminado exitosamente<br>";
} else {
    echo "Error eliminando el producto: " . $conn->error . "<br>";
}

$conn->close();
?>

Conclusión

En esta sección, hemos aprendido cómo realizar operaciones CRUD básicas utilizando PHP y MySQL. Estas operaciones son fundamentales para cualquier aplicación web que maneje datos. Asegúrate de practicar estos conceptos y experimentar con diferentes consultas SQL para fortalecer tu comprensión. En el próximo módulo, profundizaremos en el uso de PDO para la interacción con bases de datos, lo que proporcionará una capa adicional de seguridad y flexibilidad.

Curso de Programación en PHP

Módulo 1: Introducción a PHP

Módulo 2: Estructuras de Control

Módulo 3: Funciones

Módulo 4: Arrays

Módulo 5: Trabajando con Formularios

Módulo 6: Trabajando con Archivos

Módulo 7: Programación Orientada a Objetos (POO)

Módulo 8: Trabajando con Bases de Datos

Módulo 9: Técnicas Avanzadas de PHP

Módulo 10: Frameworks de PHP y Mejores Prácticas

Módulo 11: Proyecto: Construyendo una Aplicación Web

© Copyright 2024. Todos los derechos reservados