예제 #1
0
 public function save($question)
 {
     $fields = $question->getFields();
     if ($question->id_question == DAO::UNKNOWN_ID) {
         unset($fields['id_question']);
         $champs = $valeurs = '';
         foreach ($question as $nomChamp => $valeur) {
             if ($nomChamp == 'id_question') {
                 continue;
             }
             $champs .= $nomChamp . ', ';
             if ($valeur === NULL) {
                 $valeurs .= 'NULL, ';
                 unset($fields[$nomChamp]);
             } else {
                 $valeurs .= ":{$nomChamp}, ";
             }
         }
         $champs = substr($champs, 0, -2);
         $valeurs = substr($valeurs, 0, -2);
         $req = $this->pdo->prepare("INSERT INTO question({$champs}) VALUES({$valeurs})");
         if ($req->execute($fields)) {
             $question->id_question = $this->pdo->lastInsertId();
             return $question;
         }
         return false;
     } else {
         unset($question->id_question);
         $newValeurs = '';
         foreach ($question as $nomChamp => $valeur) {
             if ($valeur === NULL) {
                 $newValeurs .= $nomChamp . ' = NULL, ';
                 unset($fields[$nomChamp]);
             } else {
                 $newValeurs .= "{$nomChamp} = :{$nomChamp}, ";
             }
         }
         $newValeurs = substr($newValeurs, 0, -2);
         $clarifierDAO = new ClarifierDAO(BDD::getInstancePDO());
         $clarifierDAO->deleteAllForOneQuestion($fields['id_question']);
         $req = $this->pdo->prepare("UPDATE question SET {$newValeurs} WHERE id_question = :id_question");
         return $req->execute($fields);
     }
 }