Crear una Base de Datos y Probar Conexión con PHP PDO
Aprende a conectar tus scripts PHP a MariaDB/MySQL utilizando la extensión estándar PDO, manejando excepciones y previniendo errores de conexión.
¿Por qué Usar PDO en Lugar de mysqli o mysql_connect?
En el desarrollo web profesional con PHP moderno, PDO (PHP Data Objects) es la capa de abstracción estándar de la industria. A diferencia de las funciones antiguas mysql_* (eliminadas hace años) o mysqli_* (atadas únicamente a MySQL), PDO ofrece:
- Soporte multi-motor: Si cambias de MySQL a PostgreSQL o SQLite, el 90% de tu código PHP se mantiene intacto.
- Manejo de errores profesional con Excepciones: Permite capturar fallos de conexión con bloques
try...catchsin exponer contraseñas al usuario. - Consultas preparadas obligatorias: Protección nativa contra ataques de Inyección SQL.
Estructura del DSN (Data Source Name) en XAMPP
Para conectar a XAMPP por defecto, la cadena de conexión DSN se compone de:
$dsn = "mysql:host=localhost;dbname=mi_tienda_db;charset=utf8mb4";
$usuario = "root";
$password = ""; // Contraseña vacía por defecto en XAMPP
⚡ Script Profesional de Conexión y Consulta con PDO
Guarda este archivo en C:\xampp\htdocs\prueba\conexion.php para verificar la comunicación en vivo:
<?php
// Configuración de credenciales de XAMPP local
$host = '127.0.0.1';
$db = 'test'; // O el nombre de tu base de datos creada en phpMyAdmin
$user = 'root';
$pass = ''; // Vacía por defecto
$charset = 'utf8mb4';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$opciones = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // Lanza excepciones en errores
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, // Retorna arrays asociativos
PDO::ATTR_EMULATE_PREPARES => false, // Consultas preparadas reales
];
try {
$pdo = new PDO($dsn, $user, $pass, $opciones);
echo "<h3>✅ ¡Conexión Exitosa con MariaDB/MySQL en XAMPP!</h3>";
// Consulta de prueba: versión del motor
$stmt = $pdo->query("SELECT VERSION() AS version_motor");
$resultado = $stmt->fetch();
echo "<p><strong>Versión del Servidor:</strong> " . htmlspecialchars($resultado['version_motor']) . "</p>";
} catch (PDOException $e) {
// Si falla la conexión, muestra el error de forma segura
echo "<h3>❌ Error al conectar a la base de datos:</h3>";
echo "<p>" . htmlspecialchars($e->getMessage()) . "</p>";
}
Mini-Quiz de Retención
Comprueba tu comprensión antes de pasar a la siguiente lección¿Cuál es la principal ventaja de configurar PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION al conectar PHP con MySQL?
¿Tienes dudas con este tema?
Sócrates AI puede darte analogías y explicarte este código paso a paso.🚀 ¿Quieres dominar Manual de XAMPP: Instalación & Pruebas y crear proyectos reales?
Aprende arquitectura limpia, desarrollo web moderno, buenas prácticas y despliegue en producción con nuestro Bootcamp Fullstack Developer con mentorías en vivo.
🏛️ Autoría y Propiedad Intelectual: Obra educativa original de David Amador para Kilopolis Academia (Solucionáticos), estructurada sobre las especificaciones y estándares abiertos del W3C, el estándar vivo de WHATWG y la documentación oficial de código abierto. © Todos los derechos reservados.