Les bases de données SQL
Introduction
Vous avez probablement déjà entendu parler des bases de données (BDD ou bdd), elles constituent un ensemble structuré de données enregistrées sur un support (une base de données) et exploitables à volonté.
Ces données mises à disposition du développeur peuvent être consultées, modifiées, supprimées et vous pouvez également en ajouter de nouvelles.
La majorité des sites Internet dynamiques possède une base de données. À l’inverse, les sites statiques dont les pages ne sont pas issues d’actions de l’utilisateur ne possèdent pas de données enregistrées.
On pourrait utiliser un système de fichiers pour gérer les données d’un site, mais on serait vite limité en puissance, en stockage, en cas d’utilisateurs multiples et simultanés, etc.
La base de données représente le conteneur (le moteur) qui stocke les données, SQL (Structured Query Langage) est un moyen de les manipuler (ajout, tri, suppression, etc.).
Voici un exemple de requête permettant de lister des informations contenues dans la base de données (une requête est une ligne d’écriture SQL) :
SELECT immatriculation FROM vehicules;
Si l’on décortique un peu cette requête, c’est en fait un ordre...
Structure d’une base de données
Une base de données est organisée sous forme de tables, elles-mêmes constituées de champs (les colonnes) qui contiennent les données. Pour vous représenter la structure d’une table, pensez à un tableau dans le lequel sont répertoriées vos données en lignes et colonnes :
Immatriculation |
marque |
modèle |
couleur |
AB-111-BA |
Peugeot |
308 |
rouge |
BC-222-CB |
Renault |
Clio |
Verte |
DE-333-ED |
Peugeot |
207 |
Grise |
Cette table contient quatre colonnes que l’on appelle des champs :
-
immatriculation
-
marque
-
modèle
-
couleur
Le champ immatriculation servira d’identifiant, car une immatriculation est unique. Retenez bien ce concept, car c’est avec ce genre d’information que l’on pourra retrouvez facilement un véhicule. Rien n’empêche évidemment de définir vous-même un identifiant qui serait un nombre incrémenté d’une unité à chaque nouvelle ligne enregistrée dans la table.
Les lignes d’une table sont appelées des enregistrements, sans limite de taille sauf la place sur votre disque dur.
Pour résumer, une base de données peut contenir des tables, qui peuvent contenir des champs et des enregistrements.
PhpMyAdmin
Si vous avez lu ce livre depuis le début, vous avez probablement installé un émulateur de serveur WampServer, et celui-ci comprend une base de données nommée PhpMyAdmin. Ce logiciel va vous permettre de gérer les données.
Le langage SQL (Structured Query Langage) permet de créer des tables, de les manipuler (modification, suppression, duplication, etc.), mais aussi de les interroger afin de retrouver l’information dont vous avez besoin. Ce langage est quasi commun à l’ensemble des bases de données du marché, avec quelques petites variantes.
Les requêtes peuvent être écrites dans le logiciel PhpMyAdmin pour être testées, puis vous pourrez les incorporer dans votre code PHP afin de les réutiliser dans vos projets.
Pour lancer PhpMyAdmin, cliquez sur l’icône W de Wamp (ou sur les icônes respectives de Lamp ou Mamp selon votre environnement) :
Et vous devez obtenir dans votre navigateur web quelque chose ressemblant à ceci :
PhpMyAdmin est une interface web écrite en PHP. Elle va vous servir à manipuler vos données.
Cette interface permet de gérer plusieurs bases de données, que l’on pourra exploiter dans la partie gauche :
Dans cet exemple, il y a quatre bases, ne touchez pas les trois premières, car elles font partie du moteur. Ici, vous avez également une base nommée test qui est vide (prête à l’emploi).
Vous allez maintenant créer une nouvelle base, que l’on appellera mabdd. Optez pour un nom parlant, et ne mettez jamais de caractères spéciaux dans les noms de vos tables ou champs. Les espaces sont également à proscrire, utilisez plutôt les caractères soulignés (_), comme par exemple id_proprietaire.
Pour créer votre base, cliquez simplement sur le lien Nouvelle base de données et entrez le nom que vous souhaitez : mabdd.
Laissez l’interclassement par défaut, il s’agit de la langue utilisée, puis cliquez sur le bouton Créer. Un message vous confirme que tout s’est bien passé :
Puis, si vous regardez à nouveau votre liste de bases de données sur la partie gauche, vous y trouverez votre base :
1. Création d’une table...
PHP et le langage SQL
PhpMyAdmin propose un outil pour écrire vos requêtes au format SQL (Structured Query Langage, ou langage structuré de requêtes). En d’autres termes, vous pourrez effectuer vos recherches dans ce module, à l’aide d’un langage que vous allez manipuler dans les paragraphes suivants.
Vous allez maintenant découvrir comment utiliser ce langage de requête avec le langage PHP.
Ce chapitre suppose que vous ayez déjà des notions SQL. N’hésitez pas à reprendre le chapitre précédent sur PhpMyAdmin pour manipuler les tables et les requêtes SQL.
1. Connexion à la base de données à l’aide de PHP
Avant de pouvoir lire, écrire et effectuer toute action dans votre base de données, il faut se connecter à celle-ci.
Il existe plusieurs modes de connexion (par exemple mysql_, mysqli_ ou PDO), mais on va aborder uniquement les connexions PDO, car elles présentent l’avantage de s’affranchir d’une base de données MySQL, cela veut dire que vous pouvez utiliser cette méthode avec n’importe quelle autre base de données SQL.
PDO est une extension PHP, elle est normalement activée par défaut dans Wamp (Lamp ou Mamp).
Pour le vérifier, cliquez sur l’icône Wamp, puis naviguez jusqu’aux extensions de PHP :
Si vous n’utilisez aucun des logiciels cités ci-dessus, vérifiez dans le fichier php.ini qu’il n’y a pas de point-virgule (;) devant la ligne suivante : extension=php_pdo_mysql.dll
Dès lors que vous effectuez une modification de configuration, il faut redémarrer les services ou votre émulateur (icône Wamp, puis Restart All Services), vous pouvez également fermer et relancer Wamp.
Pour se connecter à une base, il va falloir plusieurs paramètres qui sont les suivants :
-
Le nom ou l’adresse IP de l’hôte
Il s’agit du serveur où MySQL est installé. Si vous êtes en configuration locale, l’hôte se nomme localhost ou son adresse IP est 127.0.0.1.
-
La base de données
C’est le nom de la base de données, il faut entrer le nom de votre base. Souvenez-vous à la section PhpMyAdmin, on a créé mabdd.
-
Le login ou nom de l’utilisateur...