Saltar a contenido

Conexión a Bases de Datos en PHP

Conectar PHP a bases de datos es esencial para crear aplicaciones web dinámicas que puedan almacenar y recuperar información. En esta guía cubriremos los pasos para conectarse a bases de datos y realizar operaciones básicas como insertar, modificar, eliminar y consultar datos, explicando en detalle qué hace cada parte del código.

1. Conectar a MySQL Usando MySQLi

Ejemplo de Conexión:

<?php
$servername = "localhost"; // Nombre del servidor de la base de datos
$username = "usuario"; // Nombre de usuario de la base de datos
$password = "contraseña"; // Contraseña del usuario
$database = "nombre_base_datos"; // Nombre de la base de datos

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

// Comprobar conexión
if ($conn->connect_error) {
    die("Error de conexión: " . $conn->connect_error); // Termina la ejecución si la conexión falla
}

echo "Conexión exitosa"; // Muestra un mensaje si la conexión es exitosa
?>

2. Operaciones Básicas

Insertar Datos

Este bucle inserta cinco registros en la tabla usuarios.

<?php
for ($i = 1; $i <= 5; $i++) {
    $nombre = "Usuario $i"; // Genera un nombre para cada usuario
    $email = "usuario$i@example.com"; // Genera un email para cada usuario
    $sql = "INSERT INTO usuarios (nombre, email) VALUES ('$nombre', '$email')";
    if ($conn->query($sql) === TRUE) {
        echo "Registro $i insertado con éxito<br>";
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
}
?>

Modificar Datos

Este bucle actualiza los correos electrónicos de los cinco usuarios insertados anteriormente.

<?php
for ($i = 1; $i <= 5; $i++) {
    $nuevo_email = "modificado$i@example.com"; // Nuevo email para cada usuario
    $sql = "UPDATE usuarios SET email='$nuevo_email' WHERE nombre='Usuario $i'";
    if ($conn->query($sql) === TRUE) {
        echo "Registro $i actualizado con éxito<br>";
    } else {
        echo "Error actualizando el registro $i: " . $conn->error;
    }
}
?>

Eliminar Datos

Este bucle elimina los registros de los cinco usuarios.

<?php
for ($i = 1; $i <= 5; $i++) {
    $sql = "DELETE FROM usuarios WHERE nombre='Usuario $i'";
    if ($conn->query($sql) === TRUE) {
        echo "Registro $i eliminado con éxito<br>";
    } else {
        echo "Error eliminando el registro $i: " . $conn->error;
    }
}
?>

Consultar Datos

Este código selecciona y muestra todos los registros de la tabla usuarios.

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

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "ID: " . $row["id"] . " - Nombre: " . $row["nombre"] . " - Email: " . $row["email"] . "<br>";
    }
} else {
    echo "0 resultados";
}
?>

3. Conexión usando PDO

Ejemplo de Conexión:

<?php
$dsn = 'mysql:host=localhost;dbname=nombre_base_datos'; // Fuente de datos
$username = 'usuario'; // Nombre de usuario
$password = 'contraseña'; // Contraseña

try {
    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Activar excepciones en errores
    echo "Conexión exitosa";
} catch (PDOException $e) {
    echo "Error de conexión: " . $e->getMessage();
}
?>

4. Operaciones con PDO

Insertar Datos

Inserta cinco registros en la tabla usuarios.

1
2
3
4
5
6
7
<?php
for ($i = 1; $i <= 5; $i++) {
    $stmt = $pdo->prepare("INSERT INTO usuarios (nombre, email) VALUES (:nombre, :email)");
    $stmt->execute(['nombre' => "Usuario $i", 'email' => "usuario$i@example.com"]);
    echo "Registro $i insertado con éxito<br>";
}
?>

Modificar Datos

Actualiza los correos electrónicos de los cinco usuarios.

<?php
for ($i = 1; $i <= 5; $i++) {
    $stmt = $pdo->prepare("UPDATE usuarios SET email = :email WHERE nombre = :nombre");
    $stmt->execute(['email' => "modificado$i@example.com", 'nombre' => "Usuario $i"]);
    echo "Registro $i actualizado con éxito<br>";
}
?>

Eliminar Datos

Elimina los registros de los cinco usuarios.

1
2
3
4
5
6
7
<?php
for ($i = 1; $i <= 5; $i++) {
    $stmt = $pdo->prepare("DELETE FROM usuarios WHERE nombre = :nombre");
    $stmt->execute(['nombre' => "Usuario $i"]);
    echo "Registro $i eliminado con éxito<br>";
}
?>

Consultar Datos

Selecciona y muestra todos los registros de la tabla usuarios.

1
2
3
4
5
6
<?php
$stmt = $pdo->query("SELECT id, nombre, email FROM usuarios");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo "ID: " . $row['id'] . " - Nombre: " . $row['nombre'] . " - Email: " . $row['email'] . "<br>";
}
?>

5. Cerrar la Conexión

MySQLi

1
2
3
<?php
$conn->close(); // Cierra la conexión con MySQLi
?>

PDO

1
2
3
<?php
$pdo = null; // Cierra la conexión con PDO
?>