Présentation 21 - Connexion à une base de données en PHP

PDO: c'est quoi?

  • La classe PDO permet de se connecter avec presque toutes les bases de données

 

 

 

 

  • Requêtes SELECT, UPDATE, INSERT, DELETE
  • préparation des requêtes et transaction.

Pré-requis

  • Serveur Apache (wamp)
  • PHP > 5.1
  • Une base de données
  • Activer l'extension PDO ->

Initialiser PDO

//modèle de base
$db = new PDO('mysql:host=localhost;dbname=bddexemple;charset=utf8', 'user', 'pass');

// exemple dans votre cas
$db = new PDO('mysql:host=localhost;dbname=geek_events;charset=utf8', 'root', '');

Instancier l'objet PDO

  • mysql: indique qu'on utilise MySQL
  • host: serveur de BD, généralement localhost
  • dbname: nom de la base de données
  • user: nom de l'usager qui à la permission
  • passe: mot de passe de l'usager

Try ... Catch

L'utilisation de Try ... Catch vous permet:

  • Tester une instanciation, condition, etc.
  • Si une exception survient (erreur)
    • Afficher ou logguer l'erreur
    • Arrêter PHP 
try {
    $db = new PDO('mysql:host=localhost;dbname=geek_events;charset=utf8', 'root', '');
}
catch(PDOException $e) {
    echo "Impossible de se connecter!";
    die();
}

Create - INSERT

/* 1ère étape : les données */
$datas = array(
    'name' => "Vancouver",
    'description' => "C'est pas mal loin!"
);

/* 2ème étape : préparer la requête */
$sql = 'INSERT INTO cities (name, description) VALUE (:name, :description)';
$qry = $db->prepare($sql);

/* 3ème étape: On exécute la requête */
$qry->execute($datas);

Pour insérer une ligne dans une table

  • 1er: Avoir le tableau de données (peut être $_POST)
  • 2e: construction de la requête 
  • 3e: exécution de la requête

Read - SELECT

//requete avec Select
$sql = "SELECT * FROM `cities`"; //le SQL
$qry = $db->query($sql); //la requête
$cities = $qry->fetchAll(); //le résultat dans un tableau cities

//Boucle qui affiche les données
foreach ($cities as $city) {
    echo $city['name']."<br>";
}

Pour lire une ou des lignes d'une table

  • $sql: le code SQL qui provient soit de PHPMyAdmin
  • $qry: construction de la requête pour PDO
  • $cities: nom du tableau qui reçoit les données
  • ->fetchAll(): Méthode qui  va chercher les données

Update - UPDATE

//sql avec Update
$sql = "UPDATE cities SET name = 'Saint-Lin' WHERE id=2"; //le SQL

// on exécute la requête
$count = $db->exec($sql);

echo "Nombre d'éléments mis à jour: ".$count."<br>"; //va afficher le nombre de lignes affectées

Pour mettre à jour une ou des lignes d'une table

  • $sql: le code SQL qui fait la mise à jour
  • $count : résultat de l’exécution de la requête SQL
  • ->exec(): Méthode qui  va exécuter le SQL

Delete - DELETE

//sql avec Delete
$sql = "DELETE FROM cities WHERE id = 3"; //le SQL

// on exécute la requête
$count = $db->exec($sql);

echo "Nombre d'éléments effacés: ".$count."<br>"; //va afficher le nombre de lignes affectées

Pour effacer une ou des lignes d'une table

  • $sql: le code SQL qui fait la supression
  • $count : résultat de l’exécution de la requête SQL
  • ->exec(): Méthode qui  va exécuter le SQL

Progweb - Présentation 21

By Jimmy Gilbert

Progweb - Présentation 21

Présentation 20 - Connexion à une base de données en PHP

  • 706