Développement web avancé
Base de données - PHP
2526 · Dekens Antoine
La plateforme n0c
Accès
Pour accèder à votre nom de domain pour le projet, vous devez vous connecter via cette url https://mg.n0c.com/
Dashboard
Le dashboard donne accès à tous les paramètres de votre nom de domaine. Attention, vous êtes responsable du bon fonctionnement, n'y faites pas n'importe quoi.
Gestion du domaine
Depuis la colonne de gauche se trouve les différents menus. Notamment Domaines > Gestion des domaines et qui permettent de les lister. Chaque groupe à son domaine, vérifiez que le vôtre ait bien la colonne SSL de cochée, cela active le protocol https.
Si ce n'est pas le cas, contactez-moi pour remédier à cela.
Gestion des bases de données
Dans le menu de gauche se trouve Base de données > MySQL qui permet de gérer les différentes bases de données liées à votre nom de domaine. Pour le moment il n'y a en pas, il va falloir en créer une.
Création d'une base de données
À l'extrême droite de Bases de données actuelles se trouve 2 boutons, dont Créer. Ce bouton ouvre un menu permettant d'y nommer une nouvelle base de données ainsi que de créer un nouvel utilisateur avec des accès.
Votre nouvelle base de données doit porter le nom dwa (le nom complet est [username]_dwa), et votre utilisateur root. N'oubliez pas de cocher l'option Tous les privilèges avant de valider la création.
Accès à PHPMyAdmin
Dans le même menu Bases de données > PHPMyAdmin renvoit vers le gestionnaire de base de données. À partir de là vous pourrez voir les différents bases de données crées et les gérer.
SQL
En ouvrant une base de données, vous pourrez créer, ajouter ou modifier votre base de données via l'onglet SQL tout en haut et y injecter vos requêtes de création de tables.
PDO
Comment accèder depuis PHP à votre base de données
Établir une connexion
Afin de pouvoir communiquer avec votre base de données nous allons utiliser la class PDO. Dans un premier temps nous allons définir une variable dsn:
Vous n'aurez accès à votre base de données qu'une fois les fichiers .php sur votre nom de domaine. L'hôte doit être localhost.
<?php
$host = "localhost";
$databaseName = "[username]_dwa";
$login = "[username]_root";
$password = "[password]";
$charset = "utf8mb4";
$dsn = "mysql:dbname=$databaseName;host=$host;charset=$charset";
?>
Connexion
Maintenant nous pouvons appeler notre class PDO pour faire une demande de connexion, qui prend 3 paramètres :
- la source des données ($dsn)
- le nom d'utilisateur ($login)
- le mot de passe ($password)
<?php
$host = "localhost";
$databaseName = "[username]_dwa";
$login = "[username]_root";
$password = "[password]";
$charset = "utf8mb4";
$dsn = "mysql:dbname=$databaseName;host=$host;charset=$charset";
$pdo = new PDO( $dsn, $login, $password );
?>
try…catch
Une tentative de connexion peut échouer, c'est pourquoi nous allons utiliser try/catch pour gérer les erreurs :
<?php
[…]
// On tente une connexion
try {
$pdo = new PDO( $dsn, $login, $password );
// En cas d'erreur, on l'a récupère et l'affiche avec un echo
} catch (PDOException $e) {
echo $e->getMessage();
}
?>
Requête
Une fois que la connexion est établie, nous pouvons faire tous types de requêtes SQL avec notre base de données. Cela se fait en 3 étapes :
- définir une requête
- préparer la requête
- éxécuter la requête
Définir la requête
Dans une variable on définit la requête SQL. Dans notre cas nous allons demander de récupérer tous nos éléments inscrits dans une table products que nous aurons créé au préalable :
<?php
// Après la connexion PDO
$query = "SELECT * FROM products";
?>
Préparer la requête
Une dois définie, la reqûete peut être préparée via la méthode prepare de notre variable pdo :
<?php
// Après la connexion PDO
$query = "SELECT * FROM products";
$request = $pdo->prepare( $query );
?>
Éxécuter la requête
Il ne reste plus qu'à l'éxécuter via la méthode execute ÷
<?php
// Après la connexion PDO
$query = "SELECT * FROM products";
$request = $pdo->prepare( $query );
$request->execute();
?>
Traiter la récupération
Dans notre cas nous demandons de recevoir toute les entrées de notre table products. La requête retournera donc un tableau, qui nous suffira de parcourir :
<?php
// Après la connexion PDO
$query = "SELECT * FROM products";
$request = $pdo->prepare( $query );
$request->execute();
// On stock les données dans une variable
$products = $request->fetchAll();
// On boucle sur nos données
foreach ( $products as $product ) {
echo $product[ 'name' ];
}
?>