article(s) dans votre panier VOIR

Tuto PHP/MySQL | Connexion objet avec PDO

  • Vidéo 126 sur 158
  • 4h43 de formation
  • 158 leçons

Un contenu flash devrait s'afficher ici. Votre navigateur ne comporte pas de plugin flash, ou il ne s'est pas correctement initialisé.

Vous pouvez télécharger le plugin flash depuis le site d'Adobe à l'adresse suivante : http://get.adobe.com/flashplayer/.

Pour accéder à la suite de cette formation, vous devez vous abonner.
previous
summary
resume
next
play
Connexion objet avec PDO
00:00 / 03:00
HD
fullscreen
Je m’abonne
à partir de 16,6 € / mois
  • Visionnage en ligne
  • Accès illimité à toutes nos formations
OU
J'achète uniquement
la formation
49,90€
  • Téléchargement + VOD à vie
  • Accès uniquement à cette formation

Sommaire de la formation

Détails de la formation

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.' '.$data.' : connecté '.$data.' fois (dernière connexion le '.$data.')<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.' '.$data.' : connecté '.$data.' fois (dernière connexion le '.$data.')<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