Connexion à la base de données via PDO en PHP
Établissons une connexion à la base de données via PDO. Commençons par enregistrer les accès dans des variables :
<?php
$host = 'localhost'; // nom d'hôte (généralement toujours le même)
$db = 'test'; // nom de la base de données
$user = 'root'; // nom d'utilisateur pour se connecter à la base de données
$pass = 'root'; // mot de passe pour se connecter à la base de données
?>
Maintenant, nous devons former une chaîne
dans un format spécial. Dans cette chaîne,
nous devons spécifier le type de base de données
utilisée (généralement 'mysql'),
le nom d'hôte et le nom de la base de données :
<?php
$dsn = "mysql:host=$host; dbname=$db; charset=utf8";
?>
Ensuite, nous créons un tableau d'options PDO, que nous utiliserons pendant le travail (ne vous y attardez pas pour l'instant) :
<?php
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
?>
Maintenant, nous pouvons établir la connexion à la base de données en utilisant les variables déclarées ci-dessus :
<?php
$pdo = new PDO($dsn, $user, $pass, $opt);
?>
Le code ci-dessus soit établira la connexion
à la base de données, soit générera une exception.
Il est donc plus correct d'encapsuler la connexion
dans une structure try-catch :
<?php
try {
$pdo = new PDO($dsn, $user, $pass, $opt);
echo 'DB is connected';
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
Le code complet ressemblera à ceci :
<?php
$host = 'localhost';
$db = 'test';
$user = ''; // nom d'utilisateur pour se connecter à la base de données
$pass = ''; // mot de passe pour se connecter à la base de données
$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();
}
?>
Établissez une connexion à votre base de données en utilisant la méthode décrite dans la leçon.