Table des matières

Base de données

MySQL avec PDO

Lecture de données

  <?php
  // Les instructions dans le try et le catch sont requise pour eviter d'afficher le detail d'une erreur. Notamment le mot de passe vers la base données.
  try
  {
    // On active les exceptions de PDO (a faire systematiquement)
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    // Connexion à la base de données
    $bdd = new PDO('mysql:host=localhost;dbname=testbs', 'testbs', 'testbs974');

    // Stockage des resultats dans un tableau sous la variable $reponse
    $reponse = $bdd->query('SELECT * FROM jeux_video LIMIT 5');

    // Tant qu'il y a des éléments on affiche la donnée du champs 'nom'
    while ($donnees = $reponse->fetch())
    {
      echo $donnees['nom'].'<br />';
    }

    $reponse->closeCursor(); // Termine le traitement de la requête

    //Le methode query utilise ci-dessus n'est pas recommandé car elle pourrait permettre des injections SQL
    //Utiliser plutôt me methode 'prepare' ci-dessous
    //Voici nos deux variables à utiliser dans la requete SQL
    $nom_possesseur = 'Florent';
    $prix_max = 20;

    // On prepare la requete sans y faire figurer les deux variables. chaques ? représente une variable qui sera insérée dans la requete
    $req = $bdd->prepare('SELECT nom, prix FROM jeux_video WHERE possesseur = ? AND prix <= ? ORDER BY prix');
    // On execute la requete en insérant les variables dans le même ordre que les ?
    $req->execute(array($nom_possesseur, $prix_max));

    echo '<ul>';
    while ($donnees = $req->fetch())
    {
      echo '<li>'.$donnees['nom'].' ('.$donnees['prix'].' EUR)</li>';
    }
    echo '</ul>';
    $req->closeCursor();
  }
  catch (Exception $e)
  {
    // Affichage de l'erreur si besoin
    die('Erreur : '.$e->getMessage());
  }
  ?>

Insertion de données

  <?php
  try
  {
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host=localhost;dbname=testbs', 'testbs', 'testbs974');

    // On prepare la requete
    $req = $bdd->prepare('INSERT INTO jeux_video(nom, possesseur, console, prix, nbre_joueurs_max, commentaires) VALUE(:nom, :possesseur, :console, :prix, :nbre_joueurs_max, :commentaires)');
    // On execute la requete en renseignant les données. Les données peuvent être remplacées par des variables
    $req->execute(array(
        'nom' => 'Battlefield 1942',
        'possesseur' => 'Patrick',
        'console' => 'PC',
        'prix' => 45,
        'nbre_joueurs_max' => 50,
        'commentaires' => '2nde guerre mondiale'
        ));
  }
  catch (Exception $e)
  {
    die('Erreur : '.$e->getMessage());
  }
  ?>

MySQL ancienne methode

  <?php
    // On defini les parametre d'acces a la base de donnees dans une variable
    $param_access_db = mysql_connect ('127.0.0.1', 'root', 'abcd1234');
    // On se connect a la base de données "phpdb" avec les parametre de la variable ci-dessus
    mysql_select_db ('phpdb', $param_access_db);
  
    // On stock le requete SQL dans une variable
    $sql = 'SELECT * FROM liste_proprietaire';
    // On lance la requete
    $req = mysql_query($sql);
    // On stock les donnees dans un tableau
    $data = mysql_fetch_array($req);
    // On libere le memoire
    mysql_free_result ($req);
    // Ci-dessous on ne peut afficher qu'un seul resultat
    echo 'Nom :'.$data['nom']."\n";
    echo "\n";
  
    // On stock la requete SQL dans une variable
    $sql = 'SELECT * FROM liste_proprietaire';
    // On lance la requete
    $req = mysql_query($sql) or die ('Erreur SQL :'.$sql.":\n".mysql_error()."\n");
    // Tant qu'il y a des resultat a notre requete les affiches comme on veut
    while ($data = mysql_fetch_array($req)) {
      echo 'Nom :'.$data['nom']."\n";
      echo 'Tel :'.$data['telephone']."\n";
      echo "\n";
    }
    // On libere le memoire
    mysql_free_result ($req);
  
    // On ferme la connexion SQL
    mysql_close ();
  ?>
Voir sql pour connaitre les requêtes SQL