Médiaforma

PHP MySQL – Exercice sur les requêtes préparées

Print Friendly

Reprenez l’exercice précédent, mais cette fois-ci, utilisez une requête préparée.

Solution

Faites une pause dans la vidéo pour vous permettre de définir le code. Vous pourrez poursuivre le visionnage de la vidéo pour prendre connaissance de la solution.

<?php
  try {
    $base = new PDO('mysql:host=localhost; dbname=northwind', 'root', '');
  }
  catch(exception $e) {
    die('Erreur '.$e->getMessage());
  }
  $base->exec("SET CHARACTER SET utf8");
  $retour = $base->prepare('SELECT OrderID, Customer, ShipCity FROM orders WHERE ShipCountry=?');
  $retour->execute(array("France"));
  echo "<table>";
  while ($data = $retour->fetch()){
    echo "<tr><td>".$data['OrderID']."</td>";
    echo "<td>".$data['Customer']."</td>";
    echo "<td>".$data['ShipCity']."</td></tr>";
  }
  echo "</table>";
  $base = null;
?>

La plupart des instructions sont conservées. Notez cependant que la méthode query est remplacée par la méthode prepare. La valeur affectée au champ ShipCountry dans la clause WHERE n’est pas spécifiée en clair. Un point d’interrogation remplace la valeur à utiliser.

Pour indiquer que les enregistrements sélectionnés doivent avoir un champ ShipCountry égal à France, on invoque la méthode execute en lui passant la chaîne France.

Exécutons ce code dans WAMP Server. Le résultat est bien entendu identique à celui de l’exercice précédent.

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

No comments yet.

Leave a Reply