Créé dans le cadre du projet de fin d'année de la promo 2018 de CIR2 de l'ISEN Brest/Rennes, le Burger Quizz est une adaptation numérique du jeu télévisé éponyme, plus précisément d'une épreuve spécifique de ce jeu : le "Sel ou Poivre".

class.connector.php 2.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. class Connector {
  3. private $bdd;
  4. function __construct() {
  5. $host = "localhost";
  6. $db = "burgerquizz";
  7. $user = "alain";
  8. $pass = "chabat";
  9. $this->bdd = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
  10. }
  11. /*
  12. Exemple de $options :
  13. $options = array(
  14. "where" => array(
  15. array("foo", "=", "bar"),
  16. array("blbl", ">", 5)
  17. ),
  18. "order by" => array("foo", "desc"),
  19. "limit" => array(0, 10) // Ou array(10)
  20. );
  21. */
  22. function Select($fields, $tables, $options) {
  23. $request = "SELECT $fields FROM $tables ";
  24. $arrayVerif = array();
  25. foreach($options as $name=>$value) {
  26. if(($upName = strtoupper($name)) == "WHERE") {
  27. $whereClause = " $upName ";
  28. foreach($value as $array) {
  29. if(sizeof($array) != 3) {
  30. throw new Exception('Nombre de paramètres incorrect (WHERE). Les paramètres passés sont : '
  31. .implode(',',$array));
  32. }
  33. $whereClause .= $array[0]." ".$array[1]." :".$array[0]." AND ";
  34. $arrayVerif[":".$array[0]] = $array[2];
  35. }
  36. if($substring = substr($whereClause, 0, -5)) {
  37. $request .= $substring;
  38. } else {
  39. throw new Exception('Problème lors de la création du substring');
  40. }
  41. } else if(($upName = strtoupper($name)) == "ORDER BY") {
  42. if(sizeof($value) != 2) {
  43. throw new Exception('Nombre de paramètres incorrects (ORDER BY). Les paramètres passés sont : '
  44. .implode(',', $value));
  45. }
  46. $request .= " ".$upName." ".implode(' ', $value);
  47. } else if(($upName = strtoupper($name)) == "LIMIT") {
  48. if(sizeof($value) == 1) {
  49. // La colonne "limit" ne contient qu'un nombre de champs
  50. $request .= " $upName ".$value[0];
  51. } else if(sizeof($value) == 2) {
  52. // La colonne "limit" contient un index de départ et un nombre de champs
  53. $request .= " $upName ".$value[0].",".$value[1];
  54. } else {
  55. throw new Exception('Nombre de paramètres incorrects (LIMIT). Les paramètres passés sont : '
  56. .implode(',', $value));
  57. }
  58. } else {
  59. throw new Exception('Argument '.strtoupper($name).' inconnu');
  60. }
  61. }
  62. $stmt = $this->bdd->prepare($request);
  63. if($stmt->execute($arrayVerif)) {
  64. return $stmt->fetchAll();
  65. } else {
  66. return null;
  67. }
  68. }
  69. }