OUJOOD.COM
Tutoriel MySQL
MySQL
Le tutoriel MySQL présente les concepts de base et avancés de MySQL. Notre tutoriel MySQL est conçu pour les débutants et les professionnels.
MySQL est un système de gestion de bases de données relationnelles basé sur le langage de requête structuré (Structured Query Language SQL), qui est le langage populaire pour accéder et gérer les enregistrements dans la base de données. MySQL est un logiciel ouvert et gratuit sous la licence GNU. Il est soutenu par la société Oracle.
Nous allons apprendre comment créer une base de données MySQL et la préparer avec les données, et enfin nous allons aussi apprendre comment créer la base de données de gestion de contacts.
MySQL est un système de BDD.
La BDD MySQL est différente du PHP. php est un langage de programation pour le web
MySQL est un systéme de stockage de données que nous allons voir dans la suite du cours.
Si on veut stocker ou voir des données dans la BDD (Base De Donnée) on le demande à MySQL.
Pour mieux comprendre. Je vous fais le schéma suivant :
Par exemple :
Un visiteur remplit un formulaire sur votre site —>le serveur transmit la demande au PHP —>PHP demande à MySQL de stocker les données du formulaire sur la BDD —>MySQL fait le travail et le signale à PHP —>PHP génère la page et la transmit au serveur —>le serveur la transmit au visiteur.
Une BDD est constituée de plusieurs tables chaque table contient un type d’information par exemple une table pour les données des visiteurs, une autre pour les messages postés dans votre forum, une autre pour le livre d’or etc. …
Ouvrir une connexion à MySQL
Avant de pouvoir accéder aux données de la base MySQL, nous devons pouvoir nous connecter au serveur :
Le code suivant nous permet de se connecter à notre serveur MySql :
<?php
$servername = "NomServeur";
$username = "username";
$password = "password";
//Créer une connexion
$conn = new mysqli($servername, $username, $password);
// Vérifier la connexion
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connecté avec succès";
?>
Si vous travaillez en locale avec wampserver vous pouvez utiliser les variable suivantes:
$servername = "127.0.0.1";
$username = "root";
$password = "";
Nous allons maintenant faire des manipulations sur une base de données. Pour cela nous allons
nous servir de PhpMyAdmin qui est livré avec wampserver que nous avons installé au début du cours sur le PHP instalation PHP, et qui est facile à utiliser.
PhpMyAdmin est un ensemble de pages PHP pour manipuler MySQL. Ce n'est pas un programme, mais des pages PHP toutes prêtes dont on se sert pour gagner du temps.
Créer une base de données
Création de la base en utisant PhpMyAdmin
La première chose à faire, c'est d'ouvrir PhpMyAdmin comme suit:Démarrez WAMP, faites un clic sur l'icône dans la barre des tâches et allez dans "phpMyAdmin".
L'accueil de PhpMyAdmin ressemble à ceci :

On a deux parties importantes que j’ai marquées avec les numéros en bleu.
1. la liste de vos BDD Le nombre entre parenthèses, c'est le nombre de tables qu'il y a dans la base.
On a donc au moin 2 bases : information_schema, qui contient 28 tables, et mysql, qui contient elle 21 tables.(peut être que vous n'avez pas le même nombre c'est suivant la version)
2. Créer une base de données: pour créer une nouvelle base de données, tapez un nom dans le champ de formulaire à droite, cliquez sur "Créer" et C'est fait.
Ne touchez pas au bases existantes: information_schema, et mysql ..., elles servent au fonctionnement interne de mysql.
Nous allons créer une nouvelle base "test".Tapez test dans le champ de saisie puis choisissez l'Interclassement dans la zone de sélection (pour cette exemple je choisis utf8_general_ci) cliquer sur créer.
Vous aurez l’écran suivant :

Création de la bse en utilisant du code php
L'instruction CREATE DATABASE est utilisée pour créer une base de données dans MySQL.
1- Example créer une base de données avec MySQLi orientée objet
L'exemple suivant crée une base de données nommée " mabase " :
<?php
$servername = "127.0.0.1";
$username = "root";
$password = "";
$database = "test";
//Créer une connexion
$conn = new mysqli($servername, $username, $password);
// Vérifier la connexion
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// Créer une base de données
$sql = "CREATE DATABASE mabase";
if ($conn->query($sql) === TRUE) {
echo "Base de données créée avec succès";
} else {
echo "Erreur lors de la création d'une base de données: " . $conn->error;
}
// Fermer la connexion
$conn->close();
?>
Remarque : Quand vous créez une nouvelle base de données, vous devez uniquement spécifier les trois premiers arguments de l'objet mysqli (nom de serveur, nom d'utilisateur et mot de passe).
Conseil : Si vous devez utiliser un port spécifique, ajoutez une chaîne vide pour l'argument nom de la base de données, comme ceci : new mysqli("localhost", "username", "password", "", port)
2- Exemple création d'une base de données avec MySQLi procédural
Code
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// Créer une connexion
$conn = mysqli_connect($servername, $username, $password);
// Verifier la connexion
if (!$conn) {
die("la connexion a échouée: " . mysqli_connect_error());
}
// Création de la base de données "mabase"
$sql = "CREATE DATABASE mabase";
if (mysqli_query($conn, $sql)) {
echo "Base de données créée avec succès";
} else {
echo "Erreur lors de la création d'une base de données: " . mysqli_error($conn);
}
mysqli_close($conn);
?>
3- Exemple cr&ation d'une base de données PDO
L'exemple PDO suivant crée une base de données nommée "maDBPDO" :
Code php
<?php$servername = "localhost";
$username = "username";
$password = "password";
try {
$conn = new PDO("mysql:host=$servername", $username, $password);
// définir le mode d'erreur PDO sur exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "CREATE DATABASE maDBPDO";
// utiliser la fonction exec() car aucun résultat n'est renvoyé
$conn->exec($sql);
echo "base de données crée avec succés
";
} catch(PDOException $e) {
echo $sql . "
" . $e->getMessage();
}
$conn = null;
?>
Pour la création de la base sur le serveur distant, généralement les heberdeurs mette à votre diposition un logiciel pour la gestion des bases de données.
Et donc il faut se renseigner au près de votre hébergeur.
Créer une table dans la base de données
On va créer une table dans la base.
Dans le champ "Créer une nouvelle table sur la base test", tapez le nom "news" et Nombre de colonnes: "3" :
Cliquez sur "Exécuter".
Vous avez maintenant un formulaire à remplir pour indiquer les noms des champs(colonnes) et les données qu'ils peuvent contenir.
On va donc créer 3 champs pour cette table comme suit:
* id : nous allons créer un champ appelé "id". C'est le numéro d'identification. Grâce à lui, toutes vos entrées seront numérotées. Il y aura ainsi la news n°0, n°1, n°2 etc...
Une entrée c’est une ligne dans la table.
* titre : ce champ contiendra le titre de la news.
* contenu : ce champ contiendra la news en elle-même.
Alors dans le premier champ tapez id et dans la liste déroulante en dessous choisissez int cequi veut dire que c'est un entier.
Dans le second champ tapez titre et dans la liste déroulante en dessous choisissez text.
Et en fin dans le troisième tapez contenu et dans la liste déroulante en dessous choisissez aussi text.
Il faut donc définir quel type de données contiendra le champ. Un champ peut contenir du texte, des nombres, des dates etc...
Les différents types de données vous les avez dans la liste déroulante type, mais voici l’explication de quelques types les plus utilisés :
* INT : nombre entier. Il y a plusieurs, selon la grandeur des nombres que peut comporter.
Dans l'ordre, il y a :
TINYINT (très petit, inférieur ou égale à 255 ),
SMALLINT (jusqu'à 30 000),
MEDIUMINT (8 000 000),
INT (2 000 000 000),
BIGINT (très grand).
* TEXT : du texte. Là encore il y a plusieurs variantes.
* DATE : date dont la forme peut être : "YYYY-MM-DD", "YY-MM-DD" ou "YYMMDD"
* TIME : l'heure, dont la forme peut être : "HH:MM:SS" ou "HHMMSS" ou "HHMM" ou "HH".
* DATETIME : mélange la date et l'heure, dont la forme peut être : "YYYY-MM-DD HH:MM:SS"
* BLOB : plus particulier. Il permet de stocker des fichiers dans la base de données.
Pour le premier champ, id, cochez la case "A.I." qui signifie "auto_increment" , et choisissez "Primary" pour les options d'Index, ça accélèrera les recherches dans votre table.
Cliquez enfin sur "Sauvegarder" ou enregistrer en bas.
Nous allons remplir la table et créer notre première entrée (c’est à dire ligne).
Cliquez sur l’onglet insérer.
Ne rien mettre pour id car il est automatique.
Pour le titre tapez le titre que vous voulez par exemple : Ma première news.
Pour le contenu tapez le texte de votre news par exemple : c’est ma première news je suis heureux.
Cliquez sur exécuter.
Refaites la même chose 2 ou 3 fois pour avoir plusieurs entrées si vous voulez.
Pour afficher le contenu de votre table clique sur l’onglet afficher ou sur la table news à droite.
Vous pouvez modifier votre news en cliquant sur l’icône en forme de crayon. Ou supprimer en cliquant sur l’icône en croix rouge etc. …
Nous allons expliquer les 6 onglets suivants :
* SQL
* Importer
* Exporter
* Opérations
* Vider
* Supprimer
L'onglet SQL
Cliquez sur l’onglet SQL. Vous aurez ça :
Ici vous pouvez exécuter ce que l'on appelle des requêtes SQL pour demander à Mysql de faire quelque chose.
Dans la grande zone de texte, vous pouvez taper des requêtes SQL. Par exemple ici on a :
SELECT * FROM `news`
Cela signifie : "Afficher tout le contenu de la table 'news'".
Nous apprendrons ce langage SQL tout au long de ce cours.
L’onglet "Exporter".
C'est ici que vous allez pouvoir récupérer votre base de données sur le disque dur(ou tout autre support) sous forme de fichier texte.
On peut s'en servir pour deux choses :
* Transmettre votre base de données sur Internet : pour le moment, votre base de données se trouve sur votre disque dur. Mais si vous êtes hébergés sur Internet, on va utiliser ce fichier généré pour "reconstruire" la base de données. Ainsi, sur Internet vous aurez la même base de données et votre site web pourra l'utiliser !
* Faire une copie de sauvegarde de la base de données : si vous faites une bêtise ou qu'un hacker détruit toutes les informations sur votre site (dont la base de données), vous serez bien content d'avoir une copie de secours sur votre disque dur.
L'onglet importer
Cliquez sur Importer
Dans la page qui s'affiche, vous pouvez envoyer un fichier de requêtes SQL (généralement un fichier .sql) à MySQL pour qu'il les exécute.
Seul le premier champ en haut devrait nous intéresser : il nous permet d'indiquer un fichier sur notre disque dur contenant des requêtes SQL à exécuter (le fichier qu’on a créé avec exporter par exemple).
L'onglet Opérétion
Cliquez sur OpérationsVous pouvez faire ici diverses opérations sur votre table.
Je ne vais pas les énumérer une à une, ni vous expliquer comment elles fonctionnent vu que c'est très simple.
Sachez simplement que vous pourriez avoir besoin de :
* Changer le nom de la table : indiquez le nouveau nom pour cette table.
* Déplacer la table : si vous voulez mettre cette table dans une autre base de données.
* Copier la table : faire une copie de la table, dans une autre base ou dans la même (attention, dans ce cas il faudra qu'elle ait un nom différent).
* Optimiser la table : à force d'utiliser une table, surtout si elle est grosse, on finit par avoir des "pertes" qui font que la table n'est plus bien organisée.
Un clic là-dessus et c'est arrangé.
L'onglet Vider
Vide tout le contenu de la table. Toutes les entrées vont disparaître, seule la structure de la table resteraL'onglet Supprimer
Pour supprimer la totalité de la table (structure + données), cliquez sur cet onglet.Là encore, réfléchissez-y à deux fois avant de tout supprimer, car vous ne pourrez rien récupérer par la suite.
En fin comme vous n’avez pas encor de BDD pour de vrais, n’hésitez pas à tester les différentes options pour voir ce que ça donne.
La base de données de Contacts
La base de données de contacts est une base qui contient toutes les informations pour les gens qui constitue la liste de vos contacts, toutes ces informations pourront être éditées et lues sur internet. Les champs suivants seront utilisés dans la base de données :
|
Nom |
Type |
Longueur |
Description |
|---|---|---|---|
|
ID |
INT |
6 |
Un identificateur unique pour chaque enregistrement |
|
prenom |
VARCHAR |
15 |
Prénom de la personne |
|
nom |
VARCHAR |
15 |
Nom de la personne |
|
Telephone |
VARCHAR |
20 |
Numéro de téléphone de la personne |
|
Mobile |
VARCHAR |
20 |
Numéro de téléphone mobile de la personne |
|
Fax |
VARCHAR |
20 |
Numéro de télécopieur de la personne |
|
|
VARCHAR |
50 |
Adresse de courriel de la personne |
|
Web |
VARCHAR |
70 |
Adresse web de la personne |
Vous vous demandez peut-être pourquoi j'ai utilisé des champs VARCHAR pour
les numéros de téléphone/fax même s'ils sont composés de chiffres. Vous
pouvez utiliser des champs INT, mais je préfère utiliser VARCHAR car il
permettra d’insérer les tirets, les barres obliques et les espaces
entre les nombres, ainsi que les numéros textuelles.
Le champ id sera également défini comme PRIMARY, INDEX, UNIQUE et aura
la valeur auto_increment (qui se trouve sous Extra en PHPMyAdmin). La
raison c’est qu'il s'agit de l'identificateur de champ (primaire et
index) et donc doit être unique. Le paramètre incrément automatique
signifie que chaque fois que vous ajoutez un enregistrement, l’id sera
incrémenté de 1 et donc il vous sera donné le numéro suivant sauf si
vous spécifiez un id.
Création de la Table en PHP avec mysqli procéduralrale
Dans ce cas nous n'allons pas faire la même chose que précédement lors de la création de table news, mais nous allons utilisé un code SQL
Le code suivant doit être utilisé pour créer cette table en PHP. Des parties du code ci-dessous n'ont pas encore été couvertes par notre cours, mais elles seront expliquer en détail dans les chapitres qui vont suivre.
Exemple : 📋 Copier le code
<?php
$servername = "127.0.0.1";
$username = "root";
$password = "";
$database = "mabase";
//Créer une connexion
$conn = mysqli_connect($servername, $username, $password, $database);
// Vérifier la connexion
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$query="CREATE TABLE contacts (id int(6) NOT NULL auto_increment,prenom
varchar(15) NOT NULL,nom varchar(15) NOT NULL,telephone varchar(20)
NOT NULL,mobile varchar(20) NOT NULL,fax varchar(20) NOT NULL,email
varchar(50) NOT NULL,web varchar(70) NOT NULL,PRIMARY KEY (id),UNIQUE
id (id),KEY id_2 (id))";
if (mysqli_query($conn, $query)) {
echo "Table contacts créée avec succès";
} else {
echo "Erreur lors de la création d'une table: " . mysqli_error($conn);
}
mysqli_close($conn);
?>
Entrez le nom se votre serveur, le nom de votre base de données, l’utilisateur et le mot de passe de votre MySQL au niveau des variables sur les premières lignes dans le code ci-dessus.
Comme nous travaillons en locale, j'ai utlisé le nom du serveur "127.0.0.1" et comme utilisateur "root" avec un password vide et la base de donnée créée précèdement "mabase"
Vous pouvez voir votre table dans phpMyAdmin onglet structure pour constater comment les colonnes de la table sont construits.