Comment extraire des données MySQL ou MariaDB avec PHP mysqli_query ?
Avec PHP, vous pouvez facilement extraire des informations d’une base de données MySQL ou MariaDB. Pour cela, il suffit d’établir une connexion à la base de données, puis d’exécuter une requête SQL avec la fonction PHP mysqli_query(), dont les résultats peuvent ensuite être exploités.
- Solutions flexibles, adaptées à vos besoins
- Architecture de niveau professionnel, gérée par des experts
- Hébergées en Europe, conformément aux normes de protection des données les plus strictes
Quelles sont les exigences préalables ?
Pour extraire des informations d’une base de données MySQL ou MariaDB avec PHP, certaines conditions de base doivent être réunies. Vous avez d’abord besoin d’un environnement PHP fonctionnel sur le serveur, généralement associé à un serveur Web comme Apache ou Nginx.
Si vous n’avez pas encore d’environnement prêt à l’emploi, commencez par installer PHP.
Vous devez également disposer d’une installation de MySQL ou de MariaDB. Côté PHP, l’extension MySQLi est requise, mais elle est incluse par défaut dans la plupart des installations standards.
MySQL/MariaDB : récupérer des informations avec PHP
Ce tutoriel vous explique comment créer une base de données MySQL ou MariaDB simple, y ajouter une table et un utilisateur, puis y accéder via PHP. Étape par étape, vous réaliserez un petit site Web d’exemple qui interroge directement des avis de restaurants stockés dans la base de données et les affiche dans un tableau HTML.
Étape 1 : créer une base de données
Commencez par créer la base de données. Pour cela, connectez-vous au client MySQL ou MariaDB depuis la ligne de commande :
mysql -u root -pCréez une base de données pour les avis :
CREATE DATABASE reviews;Passez à cette base de données :
USE reviews;Pour cet exemple, nous allons créer une seule table contenant les champs suivants :
- Champ ID : clé primaire de la table, configurée en auto-incrémentation.
- Nom de l’évaluateur : champ texte d’une longueur maximale de 100 caractères.
- Évaluation en étoiles : note numérique comprise entre 1 et 5 (TINYINT).
- Détails de l’avis : champ texte pouvant contenir jusqu’à environ 500 mots (VARCHAR(4000)).
Créez la table à l’aide de la commande CREATE TABLE :
CREATE TABLE user_review (
id MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
reviewer_name VARCHAR(100),
star_rating TINYINT,
details VARCHAR(4000)
);Ajoutons maintenant deux exemples d’avis dans le tableau :
INSERT INTO user_review (reviewer_name, star_rating, details) VALUES ('Ben', 5, 'Love the calzone!');
INSERT INTO user_review (reviewer_name, star_rating, details) VALUES ('Leslie', 1, 'Calzones are the worst.');Étape 2 : créer un utilisateur pour la base de données
Dans l’étape suivante, créez un utilisateur dédié à la base de données. Pour des raisons de sécurité, il est recommandé d’attribuer un utilisateur distinct à chaque base, en particulier si celle-ci est accessible depuis un site Web.
La commande suivante crée un utilisateur nommé review_site avec le mot de passe JxSLRkdutW et lui accorde l’accès à la base de données précédemment créée :
CREATE USER 'review_site'@'localhost' IDENTIFIED BY 'JxSLRkdutW';
GRANT SELECT ON reviews.* TO 'review_site'@'localhost';
FLUSH PRIVILEGES;Étape 3 : créer un script PHP
Le code présenté dans ce tutoriel est volontairement simplifié à des fins d’illustration. Lors de la création d’un site Web, il est fortement recommandé d’appliquer les bonnes pratiques de sécurité afin d’éviter que vos scripts PHP ne compromettent l’accès au serveur.
Créez ensuite un fichier nommé showreviews.php dans votre espace Web et ouvrez-le pour le modifier. Par exemple, pour créer ce fichier dans le répertoire /var/www/html, utilisez la commande suivante avec l’éditeur Nano :
sudo nano /var/www/html/showreviews.phpDans cet exemple, le code PHP sera intégré directement dans l’HTML, de sorte que la page commencera par les balises HTML de base. Le style CSS est également inclus dans la section head du document HTML :
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<style>
table {
border-collapse: collapse;
margin: 20px auto;
width: 80%;
}
th, td {
border: 1px solid black;
padding: 5px 10px;
text-align: left;
}
</style>
</head>
<body>HTMLChaque script PHP doit commencer par la balise d’ouverture PHP :
<?phpEnsuite, ajoutez un bloc de connexion MySQL/MariaDB avec l’emplacement du serveur (localhost), le nom de la base de données ainsi que le nom d’utilisateur et le mot de passe de la base de données.
$hostname = "localhost";
$username = "review_site";
$password = "JxSLRkdutW";
$db = "reviews";phpAjoutez ensuite une section pour établir la connexion à la base de données. Si la connexion échoue, un message d’erreur sera affiché. Vous pouvez relier votre script PHP à une base de données MySQL ou MariaDB à l’aide de la fonction mysqli_connect(). Indiquez le nom d’hôte, le nom d’utilisateur, le mot de passe et le nom de la base de données afin que PHP sache précisément quelle base utiliser.
$dbconnect = mysqli_connect($hostname, $username, $password, $db);
if (!$dbconnect) {
die("Échec de la connexion à la base de données : " . mysqli_connect_error());
}
?>phpÉtape 4 : insérer une table
À l’étape suivante, ajoutez dans votre script le code HTML qui servira à initialiser la table destinée à afficher les données :
<table>
<tr>
<th>Reviewer Name</th>
<th>Stars</th>
<th>Details</th>
</tr>HTMLEnsuite, le code PHP interroge la base de données, parcourt les résultats et affiche chaque avis dans une ligne distincte du tableau :
<?php
$query = mysqli_query($dbconnect, "SELECT * FROM user_review")
or die(mysqli_error($dbconnect));
while ($row = mysqli_fetch_array($query)) {
echo "<tr>\n" .
"<td>" . htmlspecialchars($row['reviewer_name']) . "</td>\n" .
"<td>" . htmlspecialchars($row['star_rating']) . "</td>\n" .
"<td>" . htmlspecialchars($row['details']) . "</td>\n" .
"</tr>\n";
}
?>phpN’oubliez pas de fermer la table et le bloc HTML à la fin du document :
</table>
</body>
</html>HTMLPour tester le script, visitez showreviews.php dans un navigateur.

Étape 5 : aperçu du script final
Voici le script PHP complet :
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<style>
table {
border-collapse: collapse;
margin: 20px auto;
width: 80%;
}
th, td {
border: 1px solid black;
padding: 5px 10px;
text-align: left;
}
</style>
</head>
<body>
<?php
$hostname = "localhost";
$username = "review_site";
$password = "JxSLRkdutW";
$db = "reviews";
$dbconnect = mysqli_connect($hostname, $username, $password, $db);
if (!$dbconnect) {
die("Échec de la connexion à la base de données : " . mysqli_connect_error());
}
?>
<table>
<tr>
<th>Reviewer Name</th>
<th>Stars</th>
<th>Details</th>
</tr>
<?php
$query = mysqli_query($dbconnect, "SELECT * FROM user_review")
or die(mysqli_error($dbconnect));
while ($row = mysqli_fetch_array($query)) {
echo "<tr>\n" .
"<td>" . htmlspecialchars($row['reviewer_name']) . "</td>\n" .
"<td>" . htmlspecialchars($row['star_rating']) . "</td>\n" .
"<td>" . htmlspecialchars($row['details']) . "</td>\n" .
"</tr>\n";
}
?>
</table>
</body>
</html>
