1,14 → 1,14 |
<?php |
|
abstract class aGttSql { |
|
|
/*** Attributs : */ |
private $base_de_donnees = GTT_BDD_NOM; |
protected $table_nom; |
protected $correspondance; |
|
|
/*** Accesseurs : */ |
|
|
// Base De Donnees |
function getBaseDeDonnees() |
{ |
36,14 → 36,14 |
{ |
$this->dao_correspondance = $c; |
} |
|
|
/*** Méthodes : */ |
|
|
/** Instancie un objet utilisateur à partir d'un enregistrement issu de la base de donnée ou l'inverse. |
* Cette métohode permet de s'abstraire des noms des champs présent dans la base de donnée. |
*/ |
protected function basculerEnregistrementObjet($donnees, $instancier = false) |
{ |
{ |
$classe = get_class($this); |
if (is_array($donnees)) { |
if ($instancier) { |
68,7 → 68,7 |
foreach ($this->getCorrespondance() as $champ => $attribut) { |
$methode = 'get'.str_replace(' ', '', ucwords(str_replace('_', ' ', $attribut))); |
if (method_exists($donnees, $methode)) { |
if ($donnees->$methode()) { |
if (!is_null($donnees->$methode())) { |
$enregistrement[$champ] = $donnees->$methode(); |
} |
} |
76,7 → 76,7 |
return $enregistrement; |
} |
} |
|
|
/** |
* Ajouter un enregistrement dans la base de données. |
* @return true si ok, false si aucun enregistrement effectué |
87,6 → 87,9 |
$sql_attributs = ''; |
$sql_valeurs = ''; |
foreach($enregistrement as $champ => $val) { |
if (!is_numeric($val)) { |
$val = '"'.$val.'"'; |
} |
$sql_attributs .= $champ.', '; |
$sql_valeurs .= $val.', '; |
} |
96,9 → 99,9 |
'( '.$sql_attributs.' ) '. |
'VALUES '. |
'( '.$sql_valeurs.' )'; |
|
trigger_error($requete, E_USER_NOTICE); |
$resultat = $GLOBALS['db']->query($requete); |
|
|
(DB::isError($resultat)) ? die (GestionnaireErreur::retournerErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ; |
$nbre_enregistrement_ajoute = $GLOBALS['db']->affectedRows(); |
if ($nbre_enregistrement_ajoute == 1) { |
107,7 → 110,7 |
return false; |
} |
} |
|
|
/** |
* Modifier un enregistrement dans la base de données. |
* @return true si ok, false si aucun enregistrement effectué |
118,6 → 121,9 |
$sql_where = ''; |
$sql_set = ''; |
foreach($enregistrement as $champ => $val) { |
if (!is_numeric($val)) { |
$val = '"'.$val.'"'; |
} |
if (preg_match('/_id_/', $champ)) { |
$sql_where .= $champ.' = '.$val.' AND '; |
} else { |
127,9 → 133,9 |
$sql_set = trim($sql_set, ', ').' '; |
$sql_where = trim($sql_where, ' AND ').' '; |
$requete = 'UPDATE '.$this->getBaseDeDonnees().'.'.$this->getTableNom().' SET '.$sql_set.'WHERE '.$sql_where; |
|
trigger_error($requete, E_USER_NOTICE); |
$resultat = $GLOBALS['db']->query($requete); |
|
|
(DB::isError($resultat)) ? die (GestionnaireErreur::retournerErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ; |
$nbre_enregistrement_ajoute = $GLOBALS['db']->affectedRows(); |
if ($nbre_enregistrement_ajoute == 1) { |
138,7 → 144,7 |
return false; |
} |
} |
|
|
/** |
* Supprimer un enregistrement dans la base de données. |
* @return true si ok, false si aucun enregistrement effectué |
148,6 → 154,9 |
$enregistrement = $this->basculerEnregistrementObjet($this); |
$sql_where = ''; |
foreach($enregistrement as $champ => $val) { |
if (!is_numeric($val)) { |
$val = '"'.$val.'"'; |
} |
//if (preg_match('/_id_/', $champ)) { |
$sql_where .= $champ.' = '.$val.' AND '; |
//} |
154,7 → 163,7 |
} |
$sql_where = trim($sql_where, ' AND ').' '; |
$requete = 'DELETE FROM '.$this->getBaseDeDonnees().'.'.$this->getTableNom().' WHERE '.$sql_where ; |
|
trigger_error($requete, E_USER_NOTICE); |
$resultat = $GLOBALS['db']->query($requete); |
(DB::isError($resultat)) ? die (GestionnaireErreur::retournerErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ; |
|
165,6 → 174,6 |
return false; |
} |
} |
|
|
} |
?> |