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:
- Configuración de MySQL
- Conexión a MySQL usando
mysqli
- Conexión a MySQL usando PDO
- Manejo de Errores de Conexión
- Ejercicios Prácticos
- 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
- Conexión a MySQL usando
mysqli
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
- Variables de Conexión: Definimos las variables
$servername
,$username
,$password
y$dbname
con los detalles de la base de datos. - Crear Conexión: Usamos
new mysqli()
para crear una nueva conexión. - Verificar Conexión: Comprobamos si hay errores en la conexión usando
$conn->connect_error
.
- 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
- DSN (Data Source Name): Definimos el DSN con el host y el nombre de la base de datos.
- Crear Conexión: Usamos
new PDO()
para crear una nueva conexión. - Atributos de Error: Configuramos el modo de error de PDO a
PDO::ERRMODE_EXCEPTION
para manejar errores de manera más efectiva. - Manejo de Excepciones: Usamos un bloque
try-catch
para capturar y manejar cualquier excepción que ocurra durante la conexión.
- 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(); } ?>
- 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
- ¿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