Trabajar con bases de datos MySQL en PHP usando el plugin MySQLi (MySQL Improved) es un paso importante para desarrollar aplicaciones web robustas. A continuación, vamos a ver paso a paso cómo realizar una conexión a MySQL y cómo realizar operaciones básicas como consultas y actualizaciones.
Vamos a comenzar por lo primero, vamos a usar la siguiente base de datos como ejemplo:
CREATE DATABASE ejemplo;
USE ejemplo;
CREATE TABLE usuarios (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(50),
email VARCHAR(50),
password VARCHAR(255)
);
Todos los ejemplos los vamos a trabajar con esta BD, así que es importante tenerla cargada en MariaDB/MySQL para trabajar con ella.
Conectando con nuestra base de datos por primera vez
Vamos a crear un archivo PHP (conexion.php) para gestionar la conexión a la base de datos. Podemos usar la clase MySQLi de esta manera para empezar a hacer la conexión:
<?php
$host = 'localhost'; // Servidor de MySQL (en XAMPP es 'localhost')
$usuario = 'root'; // Usuario de MySQL, por defecto en XAMPP es el root
$password = 'root'; // Contraseña del usuario, en el XAMPP es vacío
$baseDatos = 'ejemplo'; // Nombre de la base de datos para este ejemplo
// Creamos el objeto de conexión
$conexion = new mysqli($host, $usuario, $password, $baseDatos);
// Verificar que la conexión se realizo
if ($conexion->connect_error) {
die("Error de conexión: " . $conexion->connect_error);
} else {
echo "Conexión exitosa a la base de datos.";
}
Realizando nuestro primer INSERT a la Base de datos
Para insertar datos en la tabla usuarios, podemos usar una sentencia INSERT. Para este ejemplo vamos a crear un archivo llamado insetarEnBD.php:
<?php
$host = 'localhost'; // Servidor de MySQL (en XAMPP es 'localhost')
$usuario = 'root'; // Usuario de MySQL, por defecto en XAMPP es el root
$password = 'root'; // Contraseña del usuario, en el XAMPP es vacío
$baseDatos = 'ejemplo'; // Nombre de la base de datos para este ejemplo
// Creamos el objeto de conexión
$conexion = new mysqli($host, $usuario, $password, $baseDatos);
// Verificar que la conexión se realizo
if ($conexion->connect_error) {
die("Error de conexión: " . $conexion->connect_error);
} else {
echo "Conexión exitosa a la base de datos.";
}
// Insertar un nuevo usuario
$nombre = "Luis Fagúndez";
$email = "lfagundez@profeluisfagundez.com";
$password = password_hash("luisPHP", PASSWORD_DEFAULT);
$sql = "INSERT INTO usuarios (nombre, email, password) VALUES (?, ?, ?)";
// Prepararamos la sentencia
// statement resumido stmt singnifica: declaración
$stmt = $conexion->prepare($sql);
$stmt->bind_param("sss", $nombre, $email, $password);
if ($stmt->execute()) {
echo "Nuevo usuario agregado exitosamente.";
} else {
echo "Error: " . $stmt->error;
}
$stmt->close(); // Cerrar el statement
$conexion->close(); // Cerrar la conexión
?>
Al ejecutar el código podemos observar en el navegador que la conexión fue exitosa y que el dato se inserto correctamente en la base de datos. Podremos fijarnos en el PhpMyAdmin que el dato verdaderamente se encuentra ahí


Y cómo consultamos estos datos?
Podemos leer los datos almacenados en la tabla usuarios con una sentencia SELECT, este caso nos vamos a crear un segundo ejemplo llamado consultaBD.php
<?php
$host = 'localhost'; // Servidor de MySQL (en XAMPP es 'localhost')
$usuario = 'root'; // Usuario de MySQL, por defecto en XAMPP es el root
$password = 'root'; // Contraseña del usuario, en el XAMPP es vacío
$baseDatos = 'ejemplo'; // Nombre de la base de datos para este ejemplo
// Creamos el objeto de conexión
$conexion = new mysqli($host, $usuario, $password, $baseDatos);
$sql = "SELECT id, nombre, email FROM usuarios";
$resultado = $conexion->query($sql);
if ($resultado->num_rows > 0) {
// Mostrar los datos de cada fila
while($fila = $resultado->fetch_assoc()) {
echo "ID: " . $fila["id"]. " - Nombre: " . $fila["nombre"].
" - Email: " . $fila["email"]. "<br>";
}
} else {
echo "No se encontraron usuarios.";
}
$conexion->close(); // Cerrar la conexión
?>

Actualizando los datos de la BD
Para actualizar los datos de un usuario, usaremos una sentencia UPDATE:
<?php
$host = 'localhost'; // Servidor de MySQL (en XAMPP es 'localhost')
$usuario = 'root'; // Usuario de MySQL, por defecto en XAMPP es el root
$password = 'root'; // Contraseña del usuario, en el XAMPP es vacío
$baseDatos = 'ejemplo'; // Nombre de la base de datos para este ejemplo
// Creamos el objeto de conexión
$conexion = new mysqli($host, $usuario, $password, $baseDatos);
$nuevoEmail = "lefagundez@profeluis.com";
$idUsuario = 1;
$sql = "UPDATE usuarios SET email = ? WHERE id = ?";
// Preparar la sentencia
$stmt = $conexion->prepare($sql);
$stmt->bind_param("si", $nuevoEmail, $idUsuario);
if ($stmt->execute()) {
echo "Usuario actualizado exitosamente.";
} else {
echo "Error: " . $stmt->error;
}
$stmt->close(); // Cerrar el statement
$conexion->close(); // Cerrar la conexión
?>
Para consultar que el usuario se actualizo correctamente podríamos usar el ejemplo de arriba para verificar que verdaderamente se actualizaron los datos en la BD.
Borrar un registro en la BD
Para eliminar un registro de la tabla usuarios, utilizaremos una sentencia DELETE:
<?php
$host = 'localhost'; // Servidor de MySQL (en XAMPP es 'localhost')
$usuario = 'root'; // Usuario de MySQL, por defecto en XAMPP es el root
$password = 'root'; // Contraseña del usuario, en el XAMPP es vacío
$baseDatos = 'ejemplo'; // Nombre de la base de datos para este ejemplo
// Creamos el objeto de conexión
$conexion = new mysqli($host, $usuario, $password, $baseDatos);
// Verificar que la conexión se realizo
if ($conexion->connect_error) {
die("Error de conexión: " . $conexion->connect_error);
} else {
echo "Conexión exitosa a la base de datos.";
}
$idUsuario = 1;
$sql = "DELETE FROM usuarios WHERE id = ?";
// Preparar la sentencia
$stmt = $conexion->prepare($sql);
$stmt->bind_param("i", $idUsuario);
if ($stmt->execute()) {
echo "Usuario eliminado exitosamente.";
} else {
echo "Error: " . $stmt->error;
}
$stmt->close(); // Cerrar el statement
$conexion->close(); // Cerrar la conexión

Cómo podremos ver, trabajar con conexión a bases de datos es relativamente sencillo. En el siguiente enlace les dejo un resumen de todo lo visto en este tutorial:
En el próximo tutorial vamos a empezar a trabajar con una clase de conexión a la base de datos para optimizar los recursos y el tiempo :).








Deja un comentario