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 :

  1. définir une requête
  2. préparer la requête
  3. éxécuter la requête
Dans le cadre d'une récupération de données, une quatrième étape est à rajouter pour les parcourir.

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' ];
  }
?>

1/3

1/1