En el mundo del desarrollo web, PHP y MySQL son dos tecnologías fundamentales que suelen trabajar juntas para crear aplicaciones dinámicas y potentes. MySQL es un sistema de gestión de bases de datos relacional, mientras que PHP es un lenguaje de programación del lado del servidor. En esta guía, te mostraremos cómo integrar una base de datos MySQL con PHP de manera básica. Cubriremos desde la conexión a la base de datos hasta la ejecución de consultas y la manipulación de resultados.
Requisitos Previos
Antes de comenzar, asegúrate de tener los siguientes elementos instalados en tu entorno de desarrollo:
- Servidor Web: Un servidor como Apache o Nginx.
- PHP: Instalado y funcionando en tu servidor web.
- MySQL: Un servidor MySQL o MariaDB.
Además, deberías tener acceso a un editor de código y a un navegador web para probar tus scripts.
Paso 1: Crear una Base de Datos y una Tabla en MySQL
Antes de conectar tu aplicación PHP a MySQL, necesitas configurar la base de datos y las tablas que vas a usar. Aquí te mostramos cómo hacerlo utilizando MySQL desde la línea de comandos o mediante phpMyAdmin.
Usando la Línea de Comandos
-
Accede a MySQL:
bash
mysql -u root -p
Ingresa la contraseña cuando se te solicite.
-
Crear una base de datos:
sql
CREATE DATABASE ejemplo_db;
-
Seleccionar la base de datos:
sql
USE ejemplo_db;
-
Crear una tabla:
sql
CREATE TABLE usuarios ( id INT AUTO_INCREMENT PRIMARY KEY, nombre VARCHAR(100) NOT NULL, email VARCHAR(100) NOT NULL UNIQUE );
-
Insertar algunos datos:
sql
INSERT INTO usuarios (nombre, email) VALUES ('Juan Pérez', '[email protected]'); INSERT INTO usuarios (nombre, email) VALUES ('Ana Gómez', '[email protected]');
Usando phpMyAdmin
-
Accede a phpMyAdmin a través de tu navegador.
-
Crear una base de datos: Haz clic en "Nueva" y proporciona el nombre
ejemplo_db
. -
Seleccionar la base de datos y crear una tabla con los campos
id
,nombre
, yemail
. -
Insertar datos utilizando la interfaz de phpMyAdmin.
Paso 2: Conectar PHP a MySQL
Para conectar PHP a MySQL, puedes usar la extensión mysqli
o PDO
(PHP Data Objects). Aquí usaremos mysqli
para este ejemplo.
Código PHP para Conexión Básica
php
<?php $servername = "localhost"; $username = "root"; $password = ""; $database = "ejemplo_db"; // Crear conexión $conn = new mysqli($servername, $username, $password, $database); // Verificar conexión if ($conn->connect_error) { die("Conexión fallida: " . $conn->connect_error); } echo "Conectado exitosamente"; ?>
Explicación del Código
-
Variables de conexión:
$servername
,$username
,$password
, y$database
contienen la información necesaria para conectarse a la base de datos. -
Crear conexión:
new mysqli()
establece la conexión con los parámetros proporcionados. -
Verificar conexión:
connect_error
nos permite manejar errores si la conexión falla. -
Mensaje de éxito: Si la conexión es exitosa, se muestra un mensaje de confirmación.
Paso 3: Realizar Consultas a la Base de Datos
Una vez establecida la conexión, puedes ejecutar consultas para leer, insertar, actualizar o eliminar datos. Veamos cómo hacerlo.
Consultar Datos
php
<?php // Código de conexión aquí... $sql = "SELECT id, nombre, email FROM usuarios"; $result = $conn->query($sql); if ($result->num_rows > 0) { // Salida de datos por cada fila while($row = $result->fetch_assoc()) { echo "id: " . $row["id"]. " - Nombre: " . $row["nombre"]. " - Email: " . $row["email"]. "<br>"; } } else { echo "0 resultados"; } $conn->close(); ?>
Explicación del Código
-
Consulta SQL: La variable
$sql
contiene la consulta SQL para seleccionar datos de la tablausuarios
. -
Ejecutar consulta:
$conn->query($sql)
ejecuta la consulta. -
Procesar resultados: Se verifica el número de filas con
$result->num_rows
. Si hay filas, se usanfetch_assoc()
para iterar sobre los resultados. -
Cerrar conexión:
$conn->close()
cierra la conexión a la base de datos.
Insertar Datos
php
<?php // Código de conexión aquí... $sql = "INSERT INTO usuarios (nombre, email) VALUES ('Carlos Ruiz', '[email protected]')"; if ($conn->query($sql) === TRUE) { echo "Nuevo registro creado exitosamente"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } $conn->close(); ?>
Explicación del Código
-
Consulta SQL: La variable
$sql
contiene la consulta SQL para insertar datos en la tablausuarios
. -
Ejecutar consulta:
$conn->query($sql)
ejecuta la consulta y se verifica si la inserción fue exitosa. -
Manejo de errores: Si ocurre un error, se muestra el mensaje correspondiente.
Actualizar Datos
php
<?php // Código de conexión aquí... $sql = "UPDATE usuarios SET email='[email protected]' WHERE id=1"; if ($conn->query($sql) === TRUE) { echo "Registro actualizado exitosamente"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } $conn->close(); ?>
Explicación del Código
-
Consulta SQL: La variable
$sql
contiene la consulta SQL para actualizar datos en la tablausuarios
. -
Ejecutar consulta: Se utiliza
$conn->query($sql)
para ejecutar la consulta y se verifica el éxito de la operación.
Eliminar Datos
php
<?php // Código de conexión aquí... $sql = "DELETE FROM usuarios WHERE id=1"; if ($conn->query($sql) === TRUE) { echo "Registro eliminado exitosamente"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } $conn->close(); ?>
Explicación del Código
-
Consulta SQL: La variable
$sql
contiene la consulta SQL para eliminar datos de la tablausuarios
. -
Ejecutar consulta: La consulta se ejecuta con
$conn->query($sql)
y se verifica si la eliminación fue exitosa.
Paso 4: Manejo de Errores y Seguridad
Manejo de Errores
Es importante manejar los errores adecuadamente para evitar problemas en producción. Asegúrate de verificar si las consultas se ejecutan correctamente y manejar cualquier error que pueda ocurrir.
Seguridad
Para evitar ataques de inyección SQL, utiliza consultas preparadas y parámetros en lugar de concatenar variables directamente en las consultas SQL.
Consultas Preparadas
php
<?php // Código de conexión aquí... $stmt = $conn->prepare("INSERT INTO usuarios (nombre, email) VALUES (?, ?)"); $stmt->bind_param("ss", $nombre, $email); // Parámetros $nombre = 'María López'; $email = '[email protected]'; $stmt->execute(); echo "Nuevo registro creado exitosamente"; $stmt->close(); $conn->close(); ?>
Explicación del Código
-
Preparar consulta:
prepare()
prepara la consulta con parámetros placeholders?
. -
Vincular parámetros:
bind_param()
vincula las variables con los placeholders. -
Ejecutar consulta:
execute()
ejecuta la consulta con los parámetros vinculados.
Conclusión
Integrar PHP con MySQL es una habilidad fundamental para el desarrollo web dinámico. En esta guía básica, hemos cubierto cómo establecer una conexión, ejecutar consultas y manejar resultados. También discutimos la importancia de manejar errores y aplicar buenas prácticas de seguridad para proteger tu aplicación de vulnerabilidades. Con estos conocimientos, estarás en camino de crear aplicaciones web robustas y seguras utilizando PHP y MySQL. ¡Feliz codificación!
Janeth Kent
Licenciada en Bellas Artes y programadora por pasión. Cuando tengo un rato retoco fotos, edito vídeos y diseño cosas. El resto del tiempo escribo en MA-NO WEB DESIGN AND DEVELOPMENT.