Advertisement
Guest User

Untitled

a guest
Sep 25th, 2018
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.18 KB | None | 0 0
  1. <?php
  2. /**
  3.  * Classe PDO permettant la connection avec la BDD
  4.  *
  5.  * PHP Vesrion 7
  6.  *
  7.  * @category PERSO
  8.  * @package monSiteWebv3
  9.  * @author Loïc DELAUNAY
  10.  * @copyright (c) 2017, Loïc DELAUNAY
  11.  * @version Release: 1.0
  12.  * @link https://loicdelaunay.fr « mon site web »
  13.  */
  14. class PdoSiteWeb
  15. {
  16.     private static $_serveur = 'mysql:host=' . PDO_SERVEUR;
  17.     private static $_bdd = 'dbname=' . PDO_BDD;
  18.     private static $_user = PDO_USER;
  19.     private static $_mdp = PDO_MDP;
  20.     private static $_monPdo;
  21.     private static $_monPdoSiteWeb = null;
  22.     /**
  23.      * Crée l'instance de PDO qui sera solicité
  24.      */
  25.     private function __construct()
  26.     {
  27.         PdoSiteWeb::$_monPdo = new PDO(
  28.             PdoSiteWeb::$_serveur . ';' . PdoSiteWeb::$_bdd, PdoSiteWeb::$_user, PdoSiteWeb::$_mdp
  29.         );
  30.         PdoSiteWeb::$_monPdo->query('SET CHARACTER SET utf8');
  31.     }
  32.     /**
  33.      * Destructeur appelée pour supprimer l'instance et la connection vers
  34.      * la BDD
  35.      */
  36.     public function __destruct()
  37.     {
  38.         PdoSiteWeb::$_monPdo = null;
  39.     }
  40.     /**
  41.      * Fonction permettant l'instanciation du PDO
  42.      *
  43.      * @return l'instance PDO de la classe
  44.      */
  45.     public static function getPdoSiteWeb()
  46.     {
  47.         if (PdoSiteWeb::$_monPdoSiteWeb == null) {
  48.             PdoSiteWeb::$_monPdoSiteWeb = new PdoSiteWeb;
  49.         }
  50.         return PdoSiteWeb::$_monPdoSiteWeb;
  51.     }
  52.     /**
  53.      * @param $type
  54.      * @return mixed
  55.      */
  56.     public function getLesConnaisances($type)
  57.     {
  58.         $requetePrepare = PdoSiteWeb::$_monPdo->prepare(
  59.             'SELECT * from connaissance '
  60.             . 'WHERE connaissance.domaine = :unDomaine'
  61.         );
  62.         $requetePrepare->bindParam(':unDomaine', $type, PDO::PARAM_STR);
  63.         $requetePrepare->execute();
  64.         return $requetePrepare->fetchAll();
  65.     }
  66.     /**
  67.      * @return mixed
  68.      */
  69.     public function getLesConnaisancesCategories()
  70.     {
  71.         $requetePrepare = PdoSiteWeb::$_monPdo->prepare(
  72.             'SELECT DISTINCT domaine FROM connaissance'
  73.         );
  74.         $requetePrepare->execute();
  75.         $reponse = $requetePrepare->fetchAll();
  76.         return $reponse;
  77.     }
  78.     /**
  79.      * @return mixed
  80.      */
  81.     public function getMesProjets()
  82.     {
  83.         $requetePrepare = PdoSiteWeb::$_monPdo->prepare(
  84.             'SELECT * FROM projet'
  85.         );
  86.         $requetePrepare->execute();
  87.         return $requetePrepare->fetchAll();
  88.     }
  89.     /**
  90.      * @param $nom
  91.      * @return mixed
  92.      */
  93.     public function getUnProjet($nom)
  94.     {
  95.         $requetePrepare = PdoSiteWeb::$_monPdo->prepare(
  96.             'SELECT * FROM projet WHERE nom = :nom'
  97.         );
  98.         $requetePrepare->bindParam(':nom', $nom, PDO::PARAM_STR);
  99.         $requetePrepare->execute();
  100.         return $requetePrepare->fetch();
  101.     }
  102.     /**
  103.      * @param $nom
  104.      * @return mixed
  105.      */
  106.     public function getUnProjetTechnologies($nom)
  107.     {
  108.         $requetePrepare = PdoSiteWeb::$_monPdo->prepare(
  109.             'SELECT * FROM projet
  110.            INNER JOIN assoc_projet_technologie ON projet.nom = assoc_projet_technologie.projet
  111.            LEFT JOIN technologie ON assoc_projet_technologie.technologie = technologie.nom
  112.            WHERE projet.nom = :nom;'
  113.         );
  114.         $requetePrepare->bindParam(':nom', $nom, PDO::PARAM_STR);
  115.         $requetePrepare->execute();
  116.         return $requetePrepare->fetchAll();
  117.     }
  118.     /**
  119.      * @param $email
  120.      * @param $password
  121.      * @return mixed
  122.      */
  123.     public function seConnecter($email, $password)
  124.     {
  125.         $requetePrepare = PdoSiteWeb::$_monPdo->prepare(
  126.             'SELECT email,nom,role FROM compte WHERE email = :email AND password = :password'
  127.         );
  128.         $requetePrepare->bindParam(':email', $email, PDO::PARAM_STR);
  129.         $requetePrepare->bindParam(':password', $password, PDO::PARAM_STR);
  130.         $requetePrepare->execute();
  131.         return $requetePrepare->fetch();
  132.     }
  133.     /**
  134.      * Retourne l'autorisation d'un compte
  135.      * @param $email
  136.      * @param $password
  137.      * @return mixed
  138.      */
  139.     function getAutorisation($email,$password){
  140.         $requetePrepare = PdoSiteWeb::$_monPdo->prepare(
  141.             "SELECT role FROM compte WHERE email = :email and password = :password "
  142.         );
  143.         $requetePrepare->bindParam(':email', $email, PDO::PARAM_STR);
  144.         $requetePrepare->bindParam(':password', $password, PDO::PARAM_STR);
  145.         $requetePrepare->execute();
  146.         $result = $requetePrepare->fetch();
  147.         return $result[0];
  148.     }
  149.     /**
  150.      * @param $email
  151.      * @param $password
  152.      * @return mixed
  153.      */
  154.     public function getLesTechnologies()
  155.     {
  156.         $requetePrepare = PdoSiteWeb::$_monPdo->prepare(
  157.             'SELECT * FROM technologie'
  158.         );
  159.         $requetePrepare->execute();
  160.         return $requetePrepare->fetchAll();
  161.     }
  162.     public function getLesCompetences()
  163.     {
  164.         $requetePrepare = PdoSiteWeb::$_monPdo->prepare(
  165.             'SELECT * FROM connaissance inner join technologie on connaissance.nom = technologie.nom'
  166.         );
  167.         $requetePrepare->execute();
  168.         return $requetePrepare->fetchAll();
  169.     }
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement