En este tema, aprenderás cómo conectar tu aplicación PHP a una base de datos MySQL. Este es un paso crucial para cualquier aplicación web que necesite almacenar y recuperar datos de manera persistente. Vamos a cubrir los siguientes puntos:

  1. Configuración de MySQL
  2. Conexión a MySQL usando mysqli
  3. Conexión a MySQL usando PDO
  4. Manejo de Errores de Conexión
  5. Ejercicios Prácticos

  1. Configuración de MySQL

Antes de conectar PHP a MySQL, asegúrate de que MySQL esté instalado y en funcionamiento en tu sistema. También necesitarás las credenciales de acceso a la base de datos (nombre de usuario, contraseña, nombre de la base de datos y host).

Ejemplo de Configuración

Host: localhost
Usuario: root
Contraseña: password
Base de Datos: my_database

  1. Conexión a MySQL usando mysqli

mysqli es una extensión de PHP que permite interactuar con bases de datos MySQL. Aquí te mostramos cómo establecer una conexión básica.

Ejemplo de Conexión con mysqli

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

// 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";
?>

Explicación del Código

  1. Variables de Conexión: Definimos las variables $servername, $username, $password y $dbname con los detalles de la base de datos.
  2. Crear Conexión: Usamos new mysqli() para crear una nueva conexión.
  3. Verificar Conexión: Comprobamos si hay errores en la conexión usando $conn->connect_error.

  1. Conexión a MySQL usando PDO

PDO (PHP Data Objects) es una extensión que define una interfaz ligera y consistente para acceder a bases de datos en PHP.

Ejemplo de Conexión con PDO

<?php
$dsn = 'mysql:host=localhost;dbname=my_database';
$username = 'root';
$password = 'password';

try {
    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Conexión exitosa";
} catch (PDOException $e) {
    echo "Conexión fallida: " . $e->getMessage();
}
?>

Explicación del Código

  1. DSN (Data Source Name): Definimos el DSN con el host y el nombre de la base de datos.
  2. Crear Conexión: Usamos new PDO() para crear una nueva conexión.
  3. Atributos de Error: Configuramos el modo de error de PDO a PDO::ERRMODE_EXCEPTION para manejar errores de manera más efectiva.
  4. Manejo de Excepciones: Usamos un bloque try-catch para capturar y manejar cualquier excepción que ocurra durante la conexión.

  1. Manejo de Errores de Conexión

Es importante manejar los errores de conexión adecuadamente para que tu aplicación pueda responder de manera apropiada.

Ejemplo de Manejo de Errores con mysqli

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

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

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

Ejemplo de Manejo de Errores con PDO

<?php
$dsn = 'mysql:host=localhost;dbname=my_database';
$username = 'root';
$password = 'password';

try {
    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Conexión exitosa";
} catch (PDOException $e) {
    echo "Conexión fallida: " . $e->getMessage();
}
?>

  1. Ejercicios Prácticos

Ejercicio 1: Conexión Básica con mysqli

Instrucciones: Escribe un script PHP que se conecte a una base de datos MySQL usando mysqli y verifique la conexión.

Solución:

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

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

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

Ejercicio 2: Conexión Básica con PDO

Instrucciones: Escribe un script PHP que se conecte a una base de datos MySQL usando PDO y verifique la conexión.

Solución:

<?php
$dsn = 'mysql:host=localhost;dbname=my_database';
$username = 'root';
$password = 'password';

try {
    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Conexión exitosa";
} catch (PDOException $e) {
    echo "Conexión fallida: " . $e->getMessage();
}
?>

Ejercicio 3: Manejo de Errores

Instrucciones: Modifica los scripts anteriores para que manejen los errores de conexión de manera más detallada, mostrando un mensaje de error personalizado.

Solución:

Con mysqli:

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

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

if ($conn->connect_error) {
    die("Conexión fallida: " . $conn->connect_error . ". Por favor, verifica tus credenciales.");
}
echo "Conexión exitosa";
?>

Con PDO:

<?php
$dsn = 'mysql:host=localhost;dbname=my_database';
$username = 'root';
$password = 'password';

try {
    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Conexión exitosa";
} catch (PDOException $e) {
    echo "Conexión fallida: " . $e->getMessage() . ". Por favor, verifica tus credenciales.";
}
?>

Conclusión

En esta sección, has aprendido cómo conectar tu aplicación PHP a una base de datos MySQL usando tanto mysqli como PDO. También has visto cómo manejar errores de conexión de manera efectiva. Estos conocimientos son fundamentales para cualquier desarrollador PHP que trabaje con bases de datos. En el próximo tema, exploraremos cómo realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) en una base de datos MySQL.

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