Page 1 : Introduction et Connexion
1. Introduction à MySQLi
MySQLi (MySQL Improved) est une extension de PHP qui permet d'interagir avec les bases
de données MySQL. Elle offre des améliorations par rapport à l'ancienne extension MySQL,
notamment en termes de sécurité et de performances. Le mode procédural de MySQLi utilise
des fonctions pour effectuer les opérations sur la base de données.
2. Prérequis
Un serveur web avec PHP installé.
Un serveur MySQL installé et fonctionnel.
Une base de données MySQL créée.
3. Connexion à la base de données
La fonction mysqli_connect() permet d'établir une connexion avec le serveur MySQL. Elle
prend quatre paramètres :
Le nom d'hôte du serveur MySQL (souvent "localhost").
Le nom d'utilisateur de la base de données.
Le mot de passe de l'utilisateur.
Le nom de la base de données.
Voici un exemple de code :
PHP
<?php
$servername = "localhost";
$username = "nom_utilisateur";
$password = "mot_de_passe";
$dbname = "nom_base_de_données";
// Créer une connexion
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Vérifier la connexion
if (!$conn) {
die("Connexion échouée : " . mysqli_connect_error());
}
echo "Connexion réussie";
?>
4. Gestion des erreurs
Il est crucial de vérifier si la connexion a réussi. En cas d'échec, la fonction
mysqli_connect_error() renvoie un message d'erreur.
5. Fermeture de la connexion
Une fois les opérations sur la base de données terminées, il est important de fermer la
connexion avec la fonction mysqli_close() :
PHP
<?php
mysqli_close($conn);
?>
Page 2 : Exécution de Requêtes et Manipulation des Données
6. Exécution de requêtes SQL
La fonction mysqli_query() permet d'exécuter des requêtes SQL. Elle prend deux
paramètres :
La connexion à la base de données.
La requête SQL à exécuter.
Voici un exemple de requête pour sélectionner des données :
PHP
<?php
$sql = "SELECT id, nom, email FROM utilisateurs";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// Afficher les données de chaque ligne
while($row = mysqli_fetch_assoc($result)) {
echo "ID: " . $row["id"]. " - Nom: " . $row["nom"]. " - Email: " .
$row["email"]. "<br>";
}
} else {
echo "0 résultats";
}
?>
7. Manipulation des résultats
mysqli_num_rows(): Retourne le nombre de lignes dans le résultat.
mysqli_fetch_assoc(): Récupère une ligne de résultat sous forme de tableau
associatif.
Il existe d'autres fonctions pour récupérer les résultats, comme mysqli_fetch_row()
(tableau indexé) et mysqli_fetch_array() (tableau associatif et indexé).
8. Insertion, mise à jour et suppression de données
Pour insérer des données, utilisez la requête INSERT INTO.
Pour mettre à jour des données, utilisez la requête UPDATE.
Pour supprimer des données, utilisez la requête DELETE.
Voici un exemple d'insertion de données :
PHP
<?php
$sql = "INSERT INTO utilisateurs (nom, email) VALUES ('John Doe',
'[email protected]')";
if (mysqli_query($conn, $sql)) {
echo "Nouvel enregistrement créé avec succès";
} else {
echo "Erreur : " . $sql . "<br>" . mysqli_error($conn);
}
?>
9. Prévention des injections SQL
Il est essentiel de se protéger contre les injections SQL, qui peuvent compromettre la sécurité
de la base de données. Utilisez la fonction mysqli_real_escape_string() pour échapper
les caractères spéciaux dans les données provenant de l'utilisateur :
PHP
<?php
$nom = mysqli_real_escape_string($conn, $_POST['nom']);
$email = mysqli_real_escape_string($conn, $_POST['email']);
?>
10. Conclusion
MySQLi en mode procédural est une méthode efficace pour interagir avec les bases de
données MySQL en PHP. En suivant ces bonnes pratiques, vous pouvez développer des
applications web sécurisées et performantes.