1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
| <?php
namespace modele\dao;
use modele\metier\EnCours\Semaine1;
use PDO;
/**
* Description of Semaine1DAO
* Classe métier : Semaine1
* @author btssio
*/
class Semaine1DAO implements IDAO {
protected static function enregVersMetier($enreg) {
$id = $enreg['ID'];
$designation = $enreg[strtoupper('designation')];
$type = $enreg[strtoupper('type')];
$prix = $enreg[strtoupper('prix')];
$uneVente1 = new Semaine1($id, $designation, $type, $prix);
return $uneVente1;
}
/**
* Valorise les paramètre d'une requête préparée avec l'état d'un objet Semaine
*/
protected static function metierVersEnreg($objetMetier, $stmt) {
// On utilise bindValue plutôt que bindParam pour éviter des variables intermédiaires
$stmt->bindValue(':id', $objetMetier->getId());
$stmt->bindValue(':designation', $objetMetier->getDesignation());
$stmt->bindValue(':type', $objetMetier->getType());
$stmt->bindValue(':prix', $objetMetier->getPrix());
}
/**
* Insérer un nouvel enregistrement dans la table à partir de l'état d'un objet métier
* @param Semaine $objet objet métier à insérer
* @return boolean =FALSE si l'opération échoue
*/
public static function insert($objet) {
$requete = "INSERT INTO Semaine1 VALUES (:id, :designation, :type, :prix)";
$stmt = Bdd::getPdo()->prepare($requete);
self::metierVersEnreg($objet, $stmt);
$ok = $stmt->execute();
return ($ok && $stmt->rowCount() > 0);
}
/**
* Mettre à jour enregistrement dans la table à partir de l'état d'un objet métier
* @param string identifiant de l'enregistrement à mettre à jour
* @param Semaine $objet objet métier à mettre à jour
* @return boolean =FALSE si l'opération échoue
*/
public static function update($id, $objet) {
$ok = false;
$requete = "UPDATE Semaine1 SET DESIGNATION=:designation, TYPE=:type, PRIX=:prix WHERE ID=:id";
$stmt = Bdd::getPdo()->prepare($requete);
self::metierVersEnreg($objet, $stmt);
$stmt->bindParam(':id', $id);
$ok = $stmt->execute();
return ($ok && $stmt->rowCount() > 0);
}
public static function delete($id) {
$ok = false;
$requete = "DELETE FROM Semaine1 WHERE ID = :id";
$stmt = Bdd::getPdo()->prepare($requete);
$stmt->bindParam(':id', $id);
$ok = $stmt->execute();
$ok = $ok && ($stmt->rowCount() > 0);
return $ok;
}
public static function getAll() {
$lesObjets = array();
$requete = "SELECT * FROM Semaine1";
$stmt = Bdd::getPdo()->prepare($requete);
$ok = $stmt->execute();
if ($ok) {
while ($enreg = $stmt->fetch(PDO::FETCH_ASSOC)) {
$lesObjets[] = self::enregVersMetier($enreg);
}
}
return $lesObjets;
}
public static function getOneById($id) {
$objetConstruit = null;
$requete = "SELECT * FROM Semaine1 WHERE ID = :id";
$stmt = Bdd::getPdo()->prepare($requete);
$stmt->bindParam(':id', $id);
$ok = $stmt->execute();
// attention, $ok = true pour un select ne retournant aucune ligne
if ($ok && $stmt->rowCount() > 0) {
$objetConstruit = self::enregVersMetier($stmt->fetch(PDO::FETCH_ASSOC));
}
return $objetConstruit;
}
/**
* Permet de vérifier s'il existe ou non une Synthese ayant déjà le même identifiant dans la BD
* @param string $id identifiant de la Synthese à tester
* @return boolean =true si l'id existe déjà, =false sinon
*/
public static function isAnExistingId($id) {
$requete = "SELECT COUNT(*) FROM Semaine1 WHERE ID=:id";
$stmt = Bdd::getPdo()->prepare($requete);
$stmt->bindParam(':id', $id);
$stmt->execute();
return $stmt->fetchColumn(0);
}
} |
Partager