Interaction PHP/MySQL

Pour cette partie, nous allons utiliser l'extension PDO (PHP Data Objects) qui propose une interface permettant un accès à mysql via PHP (disponible uniquement à partir de PHP 5).

Plusieurs étapes à respecter :

1) Connection à la base de données

2) Définition et envoi de la requête (différent en fonction des paramètres s'il y en a)

3) Récupération et affichage des résultats (si requête SELECT)

 

1) Connection à la base de données

<?php

// Définition des paramètres

$serveur = "localhost" ;

$bd = "nom_de_la_base_de_donnees" ;

$login = "mon_login" ;

$mdp = "mon_mot_de_passe" ;

// Gestion des erreurs

try {

    // Connexion à MySQL avec affichage des résultats en UTF-8

    $sql = new PDO('mysql:host='.$serveur.';dbname='.$bd, $login, $mdp, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")) ;

}

catch(PDOException $e) {

     echo "Erreur de connexion à la base de données " . $e->getMessage() ;

     die();

}

 

2) Définition et envoi de la requête

$requete = $sql->query("SELECT * FROM ma_table") ;

 

3) Récupération et affichage des résultats

while($row = $requete->fetch(PDO::FETCH_OBJ)) {

    echo $row->nom . " ". $row->prenom ;

}

 

4) Requête avec des paramètres

Requête de type INSERT avec des paramètres :

<?php

$req = $sql->prepare('INSERT INTO createurs VALUES(:nom, :prenom)');

try {

    // Définition des paramètres

    $req->bindParam(':nom', $nom);

    $req->bindParam(':prenom', $prenom);

    // Exécution de la requête

    $resultat = $req->execute();

    if($resultat) {

        echo "Enregistrement réussi";

    }

}

catch( Exception $e ){

    echo 'Erreur de requète : ', $e->getMessage();

}

?>

Exercices

  • 1) Utiliser les requêtes que vous avez testées la semaine dernière, cette fois-ci avec PHP.
  • 2) Créer un formulaire qui permet de trier vos données (cf. TP formulaire CV ou autre) sur différents critères (présents dans vos tables) et afficher les données triées (SELECT)
  • 3) Permettre à l'utilisateur d'ajouter des données (INSERT)
  • 4) Permettre à l'utilisateur de supprimer des données (passage des paramètres avec la méthode GET) (DELETE)
  • 5) Permettre à l'utilisateur de mettre à jour des données (UPDATE)

Les différentes fonctionnalités demandées seront effectuées en fonction du bouton sur lequel l'utilisateur aura cliqué (un seul formulaire, plusieurs boutons avec des attributs "name" associés).