Module 11 : Bases de données MySQL avec
PHP**
Module 11 : Bases de données MySQL avec PHP
1. Connexion à une base de données MySQL :
Configuration de la connexion à la base de données :
$servername = "localhost"; // Serveur
$username = "root"; // Nom d'utilisateur
$password = ""; // Mot de passe
$dbname = "nom_base_donnees"; // Nom de la base de données
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connexion échouée : " . $conn->connect_error);
}
2. Création de la table :
SQL pour créer une table :
CREATE TABLE utilisateurs (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(30) NOT NULL,
email VARCHAR(50),
mot_de_passe VARCHAR(255),
date_inscription TIMESTAMP
);
3. Insertion de données :
Insertion via requête SQL :
$sql = "INSERT INTO utilisateurs (nom, email, mot_de_passe) VALUES ('Jean
Dupont', '
[email protected]', 'password123')";
if ($conn->query($sql) === TRUE) {
echo "Nouveau record créé avec succès";
} else {
echo "Erreur : " . $sql . "<br>" . $conn->error;
}
4. Récupération de données :
Sélection de données :
$sql = "SELECT id, nom, email FROM utilisateurs";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"]. " - Nom: " . $row["nom"]. " - Email: " .
$row["email"]. "<br>";
}
} else {
echo "0 résultats";
}
5. Mise à jour de données :
Mise à jour via requête SQL :
$sql = "UPDATE utilisateurs SET email='[email protected]' WHERE
id=1";
if ($conn->query($sql) === TRUE) {
echo "Enregistrement mis à jour avec succès";
} else {
echo "Erreur : " . $conn->error;
}
6. Suppression de données :
Suppression via requête SQL :
$sql = "DELETE FROM utilisateurs WHERE id=1";
if ($conn->query($sql) === TRUE) {
echo "Enregistrement supprimé avec succès";
} else {
echo "Erreur : " . $conn->error;
}
7. Préparation de requêtes préparées :
Utilisation de requêtes préparées :
$stmt = $conn->prepare("INSERT INTO utilisateurs (nom, email, mot_de_passe)
VALUES (?, ?, ?)");
$stmt->bind_param("sss", $nom, $email, $mot_de_passe);
// Définir les valeurs
$nom = "Jean Dupont";
$email = "
[email protected]";
$mot_de_passe = password_hash("password123", PASSWORD_DEFAULT);
// Exécuter la requête
$stmt->execute();
$stmt->close();
8. Sécurisation des données avec prepared statements et bind_param :
Effet d'une requête préparée :
$stmt = $conn->prepare("SELECT id, nom, email FROM utilisateurs WHERE email
= ?");
$stmt->bind_param("s", $email); // S pour chaîne de caractères
$email = "
[email protected]";
$stmt->execute();
$stmt->bind_result($id, $nom, $email);
// Affichage des résultats
while ($stmt->fetch()) {
echo "ID: $id - Nom: $nom - Email: $email<br>";
}
$stmt->close();
9. Gestion des erreurs :
Génération d'une erreur personnalisée :
if ($conn->error) {
echo "Erreur : " . $conn->error;
}
10. Fermer la connexion :
Fermeture de la connexion à la base de données :
$conn->close();
Ce module vous a montré comment interagir avec une base de données MySQL via PHP, utiliser des
requêtes SQL, sécuriser vos données avec des préparations et prévenir les attaques comme les
injections SQL. Si vous avez besoin d’approfondir un aspect ou d’un complément, n’hésitez pas à
demander !