Le Basesdedonnee Phpmysql
Le Basesdedonnee Phpmysql
Le Basesdedonnee Phpmysql
Introduction
Pour rendre votre site dynamique ; il est conseillé de conserver les données manipulé et
affiché sur votre site dans une base de données ,
Parmi les nombreux atouts du langage PHP, un des plus connus est son interfaçage avec
la majorité des bases de données du marché.
Parmi les plus connues, on peut citer : MySQL, PostgreSQL, Oracle, Ingres, Interbase,
Informix, Microsoft SQL Server, mSQL, Sybase, FrontBase, dBase, etc …
Dans ce qui suit nous allons voir comment créer ; Gérer et interroger une base de
données Mysql grâce aux script écrits en PHP
Une base de données est un ensemble d’informations stockées sur un support et doté
d’une certaine organisation. Votre carnet d’adresses en est un exemple élémentaire,
l’annuaire du téléphone également, mais à une autre échelle.
Une base de données contient une ou plusieurs tables, chaque table ayant un ou
plusieurs enregistrements
L’organisation des données doit permettre de répondre à des contraintes précises,
notamment les suivantes :
• Les données doivent occuper le moins d’espace possible.
• Les redondances d’information doivent être évitées. PHP
• Les mises à jour ou la suppression de données doivent laisser la base intègre et ne pas
créer d’incohérences.
• La recherche d’informations doit être rapide et sûre.
Vous allez donc aborder successivement les phases suivantes :
1. Élaboration du modèle d’organisation des données à l’aide de la méthode
entité/association. Cela entraîne la création d’un modèle conceptuel de données (MCD),
qui est une représentation abstraite des données à stocker et des liens entre elles.
2. Passage du modèle ainsi créé au modèle relationnel, qui est actuellement le plus
courant. Cela entraîne la création d’un modèle logique de données (MLD), qui est la
représentation d’un modèle implantable dans un système particulier.
3. Implémentation dans un SGBDR (Système de gestion de base de données
relationnelle) particulier, comme MySQL ou SQLite ( les plus utilisés )
2. Mysql :
1 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera
les traitements de bases de données. MySQL est Open Source. Open Source
(Standard Ouvert) signifie qu’il est possible à chacun d’utiliser et de modifier le
logiciel. Tout le monde peut le télécharger sur Internet et l’utiliser sans payer aucun
droit.
•Toute personne en ayant la volonté peut étudier et modifier le code source pour
l’adapter à ses besoins propres. Toutefois, si vous devez intégrer MySQL dans une
application commerciale, vous devez vous procurer une licence auprès de MySQL
AB. Ce qui rend MySQL très intéressant pour les Webmasters est le nombre d’API
(application program interface) dont il dispose. Vous pouvez en effet l’intégrer dans
des applications écrites en : C, C++, Eiffel, Java, Perl, PHP, Python, Ruby et Tcl.
•Le développement de MySQL commence en 1994 par David Axmark et Michael
Widenius. EN 1995, la société MySQL AB est fondée par ces deux développeurs, et
Allan Larsson. C’est la même année que sort la première version officielle de
MySQL. En 2008, MySQL AB est rachetée par la société Sun Microsystems, qui est
elle-même rachetée par Oracle Corporation en 2010.
3. phpMyAdmin
2 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera
INT :
3 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera
Nombres décimaux :
Cinq mots-clés permettent de stocker des nombres décimaux dans une colonne :
DECIMAL, NUMERIC, FLOAT, REAL et DOUBLE.
Par exemple : 12.354, -54.258, 89.2 ou -56. DECIMAL(4) équivaut à écrire DECIMAL(4,
0).
En SQL pur, on ne peut pas stocker dans un champ DECIMAL(5,3) un nombre supérieur
à 99.999, puisque le nombre ne peut avoir que deux chiffres avant la virgule (5 chiffres en
tout, dont 3 après la virgule, 5-3 = 2 avant).
Cependant, MySQL permet en réalité de stocker des nombres allant jusqu’à 999.999. En
effet, dans le cas de nombres positifs, MySQL utilise l’octet qui sert à stocker le signe
FLOAT, DOUBLE et REAL Le mot-clé FLOAT peut s’utiliser sans paramètre, auquel cas
quatre octets sont utilisés pour stocker les valeurs de la colonne. Il est cependant possible
de spécifier une précision et une échelle, de la même manière que pour DECIMAL et
NUMERIC. Quant à REAL et DOUBLE, ils ne supportent pas de paramètres. DOUBLE est
normalement plus précis que REAL (stockage dans 8 octets contre stockage dans 4
octets), mais ce n’est pas le cas avec MySQL qui utilise 8 octets dans les deux cas. Je
vous conseille donc d’utiliser DOUBLE pour éviter les surprises en cas de changement de
SGBDR.
Les nombres stockés en tant que NUMERIC ou DECIMAL sont stockés sous forme de
chaînes de caractères. Par conséquent, c’est la valeur exacte qui est stockée. Par
4 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera
contre, les types FLOAT, DOUBLE et REAL sont stockés sous forme de nombres, et c’est
une valeur approchée qui est stockée.
CHAR et VARCHAR Pour stocker un texte relativement court (moins de 255 octets), vous
pouvez utiliser les types CHAR et VARCHAR. Ces deux types s’utilisent avec un
paramètre qui précise la taille que peut prendre votre texte (entre 1 et 255). La différence
entre CHAR et VARCHAR est la manière dont ils sont stockés en mémoire. Un CHAR(x)
stockera toujours x octets, en remplissant si nécessaire le texte avec des espaces vides
pour le compléter, tandis qu’un VARCHAR(x) stockera jusqu’à x octets (entre 0 et x), et
stockera en plus en mémoire la taille du texte stocké.
Exemple :
TEXT
pour stocker des textes de plus de 255 octets ? Il suffit alors d’utiliser le type TEXT, ou un
de ses dérivés TINYTEXT, MEDIUMTEXT ou LONGTEXT. La différence entre ceux-ci
étant la place qu’ils permettent d’occuper en mémoire. Petit tableau habituel :
5 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera
SET et ENUM
ENUM Une colonne de type ENUM est une colonne pour laquelle on définit un certain
nombre de valeurs autorisées, de type ”chaîne de caractère”.
Par exemple, si l’on définit une colonne espece (pour une espèce animale) de la manière
suivante :
espece ENUM('chat', 'chien', 'tortue')
La colonne espece pourra alors contenir les chaînes ”chat”, ”chien” ou ”tortue”, mais pas
les chaînes ”lapin” ou ”cheval”. En plus de ”chat”, ”chien” et ”tortue”, la colonne espece
pourrait prendre deux autres valeurs :
• si vous essayez d’introduire une chaîne non-autorisée, MySQL stockera une
chaîne vide '' dans le champ ;
• si vous autorisez le champ à ne pas contenir de valeur (vous verrez comment faire
ça dans le chapitre sur la création des tables), le champ contiendra NULL, qui
correspond à ”pas de valeur” en SQL (et dans beaucoup de langages
informatiques).
Pour remplir un champ de type ENUM, deux possibilités s’offrent à vous :
• soit remplir directement avec la valeur choisie (”chat”, ”chien” ou ”tortue” dans
notre exemple) ;
• soit utiliser l’index de la valeur, c’est-à-dire le nombre associé par MySQL à la
valeur. Ce nombre est compris entre 1 et le nombre de valeurs définies. L’index
est attribué selon l’ordre dans lequel les valeurs ont été données lors de la
création du champ. De plus, la chaîne vide (stockée en cas de valeur non-
autorisée) correspond à l’index 0. Le tableau suivant reprend les valeurs d’index
pour notre exemple précédent : le champ espece.
6 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera
SET
SET est fort semblable à ENUM. Une colonne SET est en effet une colonne qui permet de
stocker une chaîne de caractères dont les valeurs possibles sont prédéfinies par
l’utilisateur. La différence avec ENUM, c’est qu’on peut stocker dans la colonne entre 0 et
x valeur(s), x étant le nombre de valeurs autorisées.
Donc, si l’on définit une colonne de type SET de la manière suivante :
espece SET('chat', 'chien', 'tortue') On pourra stocker dans cette colonne :
'' (chaîne vide ) ;
• 'chat' ;
• 'chat,tortue' ;
• 'chat,chien,tortue' ;
Vous remarquerez que lorsqu’on stocke plusieurs valeurs, il faut les séparer par une
virgule, sans espace et entourer la totalité des valeurs par des guillemets (non pas chaque
valeur séparément). Par conséquent, les valeurs autorisées d’une colonne SET ne
peuvent pas contenir de virgule elles-mêmes.
Remarque :
SET et ENUM sont des types de données qui n’existent que chez MySQL. Il vaut donc mieux
éviter de les utiliser
Types temporels
Pour les données temporelles, MySQL dispose de cinq types qui permettent, lorsqu’ils
sont bien utilisés, de faire énormément de choses. Avant d’entrer dans le vif du sujet, une
petite remarque importante : lorsque vous stockez une date dans MySQL, certaines
vérifications sont faites sur la validité de la date entrée. Cependant, ce sont des
vérifications de base : le jour doit être compris entre 1 et 31 et le mois entre 1 et 12. Il vous
est tout à fait possible d’entrer une date telle que le 31 février 2011.
Les cinq types temporels de MySQL sont DATE, DATETIME, TIME, TIMESTAMP et
YEAR.
type Signification Exemple
DATE Une date 'AAAA-MM-JJ' (le format
qu’une DATE stockée dans
MySQL)
'AAMMJJ'
'AAAA/MM/JJ'
'AA+MM+JJ'
'AAAA%MM%JJ'
7 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera
AAAAMMJJ (nombre)
AAMMJJ (nombre)
DATETIME La date et l’heure 'AAAA-MM-JJ HH:MM:SS'
(le format stocké dans
MySQL)
'AA*MM*JJ
HH+MM+SS'
AAAAMMJJHHMMSS
(nombre)
TIME Le temps exprimé en 'HH:MM:SS'
Heure :minute:seconde 'HHH:MM:SS'
'MM:SS'
'J HH:MM:SS'
'HHMMSS'
HHMMSS (nombre)
TIMESTAMP le timestamp d’une date est Exemple :
le nombre de secondes 1534786000
écoulées depuis le 1er
janvier 1970, 0h0min0s et la
date en question. Les
timestamps étant stockés
sur 4 octets
YEAR. L’année sur un octet Stockage des années entre
1901 et 2155
ou sous forme de chaîne de
caractères ou d’entiers, avec
2 ou 4 chiffres.
Pour créer une base de données avec PHPmyadmin ; nous procédons comme suit :
8 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera
1°) Aprés avoir lancer le serveur de base de données MYSQL , sélectionner Administrateur de
base de données comme suit :
2°) L’interface PHPMYADMIN s’affiche ; commençons par créer une nouvelle base de données ;
cliquer sur Nouvelle base de données sur le volet gauche ;
9 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera
3°) Ensuite saisir le nom de la base de données « bdtest » et valider par créer comme suit :
4°) La base de donnée étant crée et valider . Nous allons ensuite l’ouvrir et créer une nouvelle table
que nous appellerons contact de 4 champs comme suit :
10 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera
6°) Nous pouvons voir la structure que nous venons de créer dans l ‘onglet structure comme suit :
11 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera
7°) Nous pouvons Insérer les données dans la table crée dans l ‘onglet insérer comme suit :
12 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera
6 .Les étapes de base pour créer une base de données MySQL en utilisant PHP :
Pour manipuler une base de données en php il faut :
• Établir une connexion au serveur MySQL à partir de votre script PHP .
• Si la connexion réussit, écrivez une requête SQL pour créer une base de données et stockez-
la dans une variable de string.
• Exécutez la requête.
cette fonction Ouvre une nouvelle connexion au serveur MySQL à la base de données "my_db"
$con= mysqli_connect ( "localhost" , "my_user","my_password","my_db");
Exemple :
<?php
$connexion=new mysqli("localhost" , "my_user","my_password","my_db");
if ($connexion -> connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli -> connect_error;
exit();
}
?>
6 .2 Lancer une requête à la base de données et récupérer les résultats
fetch_array() : Récupérez une ligne de résultat sous la forme d’un tableau numérique et
d’un tableau associatif
13 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera
fetch_all() : Récupère toutes les lignes et renvoie le jeu de résultats sous la forme d’un
tableau associatif
fetch_assoc() : Récupérez une ligne de résultat sous la forme d’un tableau associatif :
fetch_fields() : Renvoie un tableau d’objets qui représentent les champs d’un jeu de
résultats, puis imprime L’attribut de chaque champ Nom, table et longueur maximale :
14 / 15
CHAPITRE : PHP/MYSQL . Réalisé par Mme Medjera
EXERCICE 1:
15 / 15