<!doctype html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Ejercicio 0</title>
<style>
*{
margin: 0 auto;
padding: 0 auto;
}
body{
width: 1920px;
height: 1080px;
font-family: Arial, sans-serif;
background: #f4f6f9;
align-items: center;
text-align: center;
}
nav{
background-color: #456D96;
color: white;
}
.ejercicio{
margin-top: 10px;
margin-bottom: 10px;
width: 750px;
border: 1px solid black;
border-radius: 10px;
text-align: left;
padding: 15px;
table{
border-collapse: collapse;
td{
border: 1px solid black;
}
}
}
.nombre{
font-weight: bold;
background-color: lightskyblue;
}
.valor{
color: gray;
background-color: lemonchiffon;
}
.error{
color: red;
background-color: lemonchiffon;
}
footer{
margin: auto;
background-color: #456d96;
text-align: center;
align-content: center;
height: 50px;;
color: white;
& a{
text-decoration: none;
}
}
</style>
</head>
<body>
<nav>
<h2>DWES - Tema 4</h2>
<h2>Ejercicio 0 PDO</h2>
</nav>
<main>
<div class="ejercicio">
<?php
/**
* @author Álvaro Allén
* @since 06-11-2025
* Realizar una conexión con la base de datos. Debe dar error en un intento y
* realizarse correctamente en otro intento (poner mal la contraseña aproposito).
*/
// Definimos las constantes con el valor del DNS (host y nombre de la base)
// el nombre del usuario y la contraseña.
require_once '../config/confDB.php';
// Definimos un array con cada uno de los atributos que tiene una base de datos.
$aAtributos = array(
"AUTOCOMMIT", "ERRMODE", "CASE", "CLIENT_VERSION", "CONNECTION_STATUS",
"ORACLE_NULLS", "PERSISTENT", "PREFETCH", "SERVER_INFO", "SERVER_VERSION",
"TIMEOUT"
);
echo "<h3>Conexión correcta a la BD.</h3>";
try{
// Esto se realizará en caso de que no haya errores.
// Comprobamos que se puede conectar a la base de datos correctamente.
$miDB = new PDO(DSN, USERNAME, PASSWORD);
echo 'Conectado a la BBDD con éxito';
echo '<br><br>';
echo '<p><b>Atributos de la conexión</b></p>';
echo '<table>';
foreach($aAtributos as $atributo){
echo '<tr>';
echo "<td class='nombre'>PDO::ATTR_$atributo: </td>";
try{
echo "<td class='valor'>".$miDB->getAttribute(constant("PDO::ATTR_$atributo")).'</td>';
} catch (PDOException $ePDO){
echo "<td class='error'>Error:".$ePDO->getMessage().'<br>Código de error: '.$ePDO->getCode().'</td>';
}
echo '</tr>';
}
echo '</table>';
} catch (PDOException $miExceptionPDO){
echo "Error: ".$miExceptionPDO->getMessage();
echo '<br>';
echo 'Código de error: '.$miExceptionPDO->getCode();
} finally{
unset($miDB);
}
echo '<br>';
echo "<h3>Eror de conexión por contraseña incorrecta.</h3>";
try{
$miDB = new PDO(DSN, USERNAME, "holaquetal");
} catch(PDOException $ePDO2){
echo $ePDO2->getMessage();
}
?>
</div>
</main>
<footer>
<div>
<a href="../indexProyectoTema4.php">
Álvaro Allén Perlines
</a>
<time datetime="2025-11-10">10-11-2025</time>
</div>
</footer>
</body>
</html>