Conexión a BD mediante PDO en PHP
Vamos a establecer una conexión con la BD mediante PDO. Primero, guardemos las credenciales en variables:
<?php
$host = 'localhost'; // nombre del host (generalmente siempre es este)
$db = 'test'; // nombre de la BD
$user = 'root'; // usuario para acceder a la BD
$pass = 'root'; // contraseña para acceder a la BD
?>
Ahora necesitamos formar una cadena
en un formato especial. En esta cadena
debes especificar el tipo de BD utilizada
(generalmente 'mysql'),
el nombre del host y el nombre de la BD:
<?php
$dsn = "mysql:host=$host; dbname=$db; charset=utf8";
?>
Luego creamos un array de opciones de PDO, que utilizaremos durante el proceso de trabajo (por ahora no profundices en ellas):
<?php
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
?>
Ahora podemos realizar la conexión a la base de datos, utilizando las variables declaradas anteriormente:
<?php
$pdo = new PDO($dsn, $user, $pass, $opt);
?>
El código anterior realizará la conexión
a la base de datos o lanzará una excepción.
Por lo tanto, es más correcto envolver la conexión
en una estructura try-catch:
<?php
try {
$pdo = new PDO($dsn, $user, $pass, $opt);
echo 'DB is connected';
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
El código completo se verá así:
<?php
$host = 'localhost';
$db = 'test';
$user = ''; // usuario para acceder a la BD
$pass = ''; // contraseña para acceder a la BD
$charset = 'utf8';
$dsn = "mysql:host=$host; dbname=$db; charset=$charset";
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try {
$pdo = new PDO($dsn, $user, $pass, $opt);
echo 'DB is connected';
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
Establece una conexión con tu BD utilizando el método descrito en la lección.