<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Véro Grué - ProyectoTema4 Ejercicio01</title>
<link rel="stylesheet" href="../webroot/css/styleEjercicios.css">
<style>
*{
margin: 0 auto;
}
h2{
padding: 0;
}
h3{
font-size: 24px;
margin-bottom: 15px;
}
section{
display: block;
align-content: center;
text-align: center;
}
table{
border:solid;
width: 80%;
border-collapse: collapse;
}
th{
border: solid black;
padding: 5px 10px;
font-size: 20px;
font-weight: 900;
background-color: lightskyblue;
text-align: left;
}
td{
border: solid 1px black;
padding: 5px 10px;
font-size: 18px;
border-right: solid black;
font-weight:bold;
text-align: left;
}
.contenedorTabla{
width: 100%;
margin-bottom: 10px;
height: auto;
}
</style>
</head>
<body>
<header class="header">
<a href="../indexProyectoTema4.php">volver</a>
<h1>Ejercicio 01</h1>
</header>
<main>
<section>
<?php
/**
* @author: Véronique Grué
* @since 29/10/2025
*
* Ejercicio 1: Conexión a la base de datos con la cuenta usuario y tratamiento de errores.
*/
//CONSULTA QUERY
// https://www.php.net/manual/es/pdo.connections.php
require_once '../config/confDBPDO.php';
//Atributos de la conexión. https://www.php.net/manual/es/pdo.getattribute.
//Para que se vean los nombre de los atributos hay que hacer un array clave->valor
/** @var array $aAtrConexion Atributos de la conexión */
$aAtrConexion = [
'AUTOCOMMIT' => PDO::ATTR_AUTOCOMMIT,
'CASE' => PDO::ATTR_CASE,
'CLIENT_VERSION' => PDO::ATTR_CLIENT_VERSION,
'CONNECTION_STATUS' => PDO::ATTR_CONNECTION_STATUS,
'DRIVER_NAME' => PDO::ATTR_DRIVER_NAME,
'ERRMODE' => PDO::ATTR_ERRMODE,
'ORACLE_NULLS' => PDO::ATTR_ORACLE_NULLS,
'PERSISTENT' => PDO::ATTR_PERSISTENT,
'PREFETCH' => PDO::ATTR_PREFETCH,
'SERVER_INFO' => PDO::ATTR_SERVER_INFO,
'SERVER_VERSION' => PDO::ATTR_SERVER_VERSION,
'TIMEOUT' => PDO::ATTR_TIMEOUT
];
echo '<h2>Conexión con la base de datos sin errores</h2>';
try {
//Establecer la conexión en la base de datos
$miDB = new PDO(DNS, USUARIODB, PSWD);
echo'<h3 style="color:blue; font-weight:bold;">Conexion establecida con exito!!!!</h3>';
echo'<h3>Atributos de la conexión</h3>';
//para que se vean los nombre y la constante que corresponde a cada atributo.
echo '<table >';
echo '<tr >';
echo '<th>Atributo PDO</th>';
echo '<th>Valor</th>';
echo '</tr>';
foreach ($aAtrConexion as $nombre => $constante) {
echo '<tr>';
echo "<td>PDO::ATTR_$nombre</td>";
try {
echo '<td style="color:green; font-weight:bold;">' . $miDB->getAttribute($constante) . "</td>";
} catch (PDOException $miExceptionPDO) {
echo '<td style="color:red"> <span style:"font-weight:bold">Error: </span>' . $miExceptionPDO->getMessage() . '. <br> <span class="font-weight:bold" >Código del error: </span>' . $miExceptionPDO->getCode() . "</td>";
}
echo '</tr>';
}
echo'</table>';
} catch (PDOException $miExceptionPDO) {
echo '<p style="color:purple; font-weight:bold;">Error: ' . $miExceptionPDO->getMessage() . '<br>' . 'Código de error: ' . $miExceptionPDO->getCode();
} finally {
//mejor dentro para que se cierre en todos los casos.
unset($miDB);
}
//Establecer la conexión en la base de datos
echo '<h2>Conexión con la base de datos con errores</h2>';
try {
$miDB2 = new PDO(DNS, USUARIODB, "pasa");
echo'<h3 style="color:blue; font-weight:bold;">Conexion establecida con exito!!!!</h3><br></br>';
echo'<h3>Atributos de la conexión</h3><br>';
//para que se vean los nombre y la constante que corresponde a cada atributo.
foreach ($aAtrConexion as $nombre => $constante) {
echo "PDO::ATTR_$nombre:";
try {
echo '<p style="color:green; font-weight:bold;">' . $miDB2->getAttribute($constante) . "</p><br>";
} catch (PDOException $miExceptionPDO) {
echo '<p style="color:red"> <span style:"font-weight:bold">Error: </span>' . $miExceptionPDO->getMessage() . '. <br> <span class="font-weight:bold" >Código del error: </span>' . $miExceptionPDO->getCode() . "</p><br>";
}
}
} catch (PDOException $miExceptionPDO) {
echo '<p style="color:purple; font-weight:bold">Error: ' . $miExceptionPDO->getMessage() . '<br>' . 'Código de error: ' . $miExceptionPDO->getCode();
} finally {
//mejor dentro para que se cierre en todos los casos.
unset($miDB2);
}
?>
</section>
</main>
<footer class="footer">
<div class="footerContent">
<div><p class="copyright">
2025-26 IES LOS SAUCES. ©Todos los derechos reservados.</p> <address><a href="../../VGDWESProyectoDWES/indexProyectoDWES.html">Véronique Grué.</a> Fecha de Actualización :
<time datetime="2025-10-29"></time>29-10-2025 </address>
</div>
</div>
</footer>
</body>
</html>