Médiaforma

PHP MySQL – Connexion objet avec PDO

Print Friendly

Nous allons établir une connexion avec la table testtable de la base testconsole définie dans une section précédente. Si vous avez supprimé cette table, créez-la dans la console MySQL et insérez-y les données suivantes :

Pierre, Dubur, 34, NOW()
Chantal, Garnier, 128, NOM()
Jean, Dupont, 2, NOW()
Belle, Vercor, 45, NOW()

La connexion avec la base de données se fait en créant une instance de la classe PDO :

$base = new PDO('mysql:host=nomserveur; dbname=nombase', 'nomutilisateur', 'motdepasse');

Où :

  • nomserveur est le nom du serveur de base de données ;
  • nombase est le nom de la base de données ;
  • nomutilisateur est le nom d’utilisateur avec lequel se connecter sur la base de données ;
  • motdepasse est le mot de passe associé au nom d’utilisateur choisi.

Par exemple, pour se connecter sur la base testconsole du serveur localhost en utilisant le nom d’utilisateur root auquel aucun mot de passe n’est associé, vous utiliserez l’instruction suivante :

$base = new PDO(‘mysql:host=localhost; dbname=testconsole’, ‘root’,  »);

Pour identifier les erreurs qui pourraient se produire sur cette instruction, vous utiliserez une structure try catch :

<?php
  try {
    $base = new PDO('mysql:host=localhost; dbname=testconsole', 'root', '');
  }
  catch(exception $e) {
    die('Erreur '.$e->getMessage());
  }
?>

Exécutez ce code. Si aucun message d’erreur n’est affiché, la base de données est bien accessible.

Avant de lire les données dans la base de données, vous allez indiquer l’encodage à utiliser avec la méthode exec() :

$base->exec("SET CHARACTER SET utf8");

Pour lire les données contenues dans une table, vous utiliserez une requête SQL. Cette requête sera passé à l’objet PDO $base avec la méthode query() :

$retour = $base->query('requete');

Où requête est la requête SQL à exécuter.

Par exemple, pour obtenir toutes les données de la table testtable, vous utiliserez l’instruction suivante :

$retour = $base->query('SELECT * FROM testtable');

Il ne reste plus qu’à traiter les données retournées avec une boucle while :

while ($data = $retour->fetch()){
  echo $data['prenom'].' '.$data['nom'].' : connecté '.$data['compteurvisite'].' fois (dernière connexion le '.$data['dernierevisite'].')<br>';
}

Lorsque les données auront été extraites de la base de données, vous pourrez supprimer l’objet PDO $base pour mettre fin à la connexion :

$base = null;

Voici le code complet :

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Accès à la bdd testconsole avec PDO</title>
  </head>
  <body>
    <?php
      try {
        $base = new PDO('mysql:host=localhost; dbname=testconsole', 'root', '');
      }
      catch(exception $e) {
        die('Erreur '.$e->getMessage());
      }
      $base->exec("SET CHARACTER SET utf8");
      $retour = $base->query('SELECT * FROM testtable');
      while ($data = $retour->fetch()){
        echo $data['prenom'].' '.$data['nom'].' : connecté '.$data['compteurvisite'].' fois (dernière connexion le '.$data['dernierevisite'].')<br>';
      }
      $base = null;
    ?>
  </body>
</html>

La boîte de dialogue est bien accessible et la requête produit plusieurs enregistrements qui sont affichés sur l’écran avec l’instruction echo

Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

No comments yet.

Leave a Reply