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.
- 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"; ?>
- 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; } ?>
- 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"; } ?>
- 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; } ?>
- 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
-
Crear una tabla llamada
productos
con las siguientes columnas:id
(INT, AUTO_INCREMENT, PRIMARY KEY)nombre
(VARCHAR(50))precio
(DECIMAL(10, 2))cantidad
(INT)
-
Insertar tres productos en la tabla
productos
. -
Leer y mostrar todos los productos de la tabla
productos
. -
Actualizar el precio de uno de los productos.
-
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
- ¿Qué es PHP?
- Configuración del Entorno de Desarrollo
- Tu Primer Script en PHP
- Sintaxis y Variables en PHP
- Tipos de Datos en PHP
Módulo 2: Estructuras de Control
Módulo 3: Funciones
- Definiendo y Llamando Funciones
- Parámetros de Función y Valores de Retorno
- Ámbito de Variables
- Funciones Anónimas y Closures
Módulo 4: Arrays
Módulo 5: Trabajando con Formularios
- Manejo de Datos de Formularios
- Validación de Formularios
- Subida de Archivos
- Seguridad en Formularios
Módulo 6: Trabajando con Archivos
- Lectura y Escritura de Archivos
- Funciones de Manejo de Archivos
- Permisos de Archivos
- Funciones de Directorio
Módulo 7: Programación Orientada a Objetos (POO)
- Introducción a la POO
- Clases y Objetos
- Propiedades y Métodos
- Herencia
- Interfaces y Clases Abstractas
- Traits
Módulo 8: Trabajando con Bases de Datos
- Introducción a las Bases de Datos
- Conectando a una Base de Datos MySQL
- Realizando Operaciones CRUD
- Usando PDO para la Interacción con la Base de Datos
- Seguridad en Bases de Datos
Módulo 9: Técnicas Avanzadas de PHP
- Manejo de Errores y Excepciones
- Sesiones y Cookies
- Expresiones Regulares
- Trabajando con JSON y XML
- PHP y Servicios Web
Módulo 10: Frameworks de PHP y Mejores Prácticas
- Introducción a los Frameworks de PHP
- Empezando con Laravel
- Arquitectura MVC
- Mejores Prácticas en el Desarrollo de PHP
- Pruebas y Depuración