burger-quizz/dao/user_dao.php

121 lines
3.5 KiB
PHP

<?php
/**
* @brief Classe DAO relatif à la classe user
*/
class user_dao extends dao {
/**
* @brief Récupère les informations d'un utilisateur
* @arg $id login de l'utilisateur à récupérer
* @return tableau clé valeur contenant les informations ou FALSE
*/
public function select($id) {
//Mise en place de la requête
$query = "SELECT * FROM `user` WHERE `login`='$id'";
// On récupère les informations suite à la requête
$return = $this->db->query($query)->fetch();
//On retourne les infos
return $return;
}
/**
* @brief Insert un nouvel utilisateur dans la base de données
* @arg $objet information de l'utilisateur à ajouter
*/
public function insert(&$objet) {
//On récupère les informations à ajouter
$login = $objet->getLogin();
$passwd = $objet->getPassword();
$nom = $objet->getNom();
$prenom = $objet->getPrenom();
$mail = $objet->getMail();
//On prépare la requête SQL
$query = "INSERT INTO `user`(`login`,`pwd`,`nom`,`prenom`,`dateinscription`, `email`)
VALUES ('$login','$passwd','$nom','$prenom',NOW(), '" . $mail . "')";
//On exécute la requête
try {
$this->db->query($query);
return TRUE;
} catch (Exception $ex) {
$ex = NULL;
return FALSE;
}
}
/**
* @brief Met à jour un utilisateur avec les nouvelles données spécifiée
* @arg $objet objet user contenant les nouvelles données
* @note le login est le seul élément inchangeable. On se sert de ce dernier pour mettre à jour la base de données
*/
public function update(&$object) {
//On récupère les données de l'utilisateur
$login = $object->getLogin();
$passwd = $object->getPassword();
$nom = $object->getNom();
$prenom = $object->getPrenom();
$mail = $object->getMail();
//On prépare la requête
$query = "UPDATE `user`
SET `pwd`='$passwd', `nom`='$nom', `prenom`='$prenom', `email`='$mail'
WHERE login='$login'";
//On envoie la requête
$result = $this->db->query($query);
//On renvoie le résultat
if ($result->rowCount() == 0) {
return FALSE;
} else {
return TRUE;
}
}
public function updateNoPassword($object) {
$login = $object->getLogin();
$nom = $object->getNom();
$prenom = $object->getPrenom();
$mail = $object->getMail();
//On prépare la requête
$query = "UPDATE `user`
SET `nom`='$nom', `prenom`='$prenom', `email`='$mail'
WHERE login='$login'";
//On envoie la requête
$result = $this->db->query($query);
//On renvoie le résultat
if ($result->rowCount() == 0) {
return FALSE;
} else {
return TRUE;
}
}
/**
* @brief Supprime un utilisateur de la base
* @arg $id login de l'utilisateur à supprimer
* @note la suppression d'un utilisateur entraine la suppression de ses parties et de ses réponses avec le ON DELETE CASCADE
*/
public function delete($id) {
//On prépare la requête SQL
$query = "DELETE FROM `user` WHERE `login`='$id'";
//On envoie la requête SQL
$result = $this->db->query($query);
if ($result->rowCount() == 0) {
return FALSE;
} else {
return TRUE;
}
}
}
?>