/** * si $set est un array la fonction ignore les éléments dont les clefs ne sont pas présentes dans la liste des colonnes * @param array $set tableau dont les clefs sont colonnes associées aux valeurs à affecter * @param string $raw_column chaine contenant les nom de colonnes, séparée par des virgules, dont les valeurs doivent être traitée comme commande sql * @return string retourne une clause SET mysql */ protected function set(array $set, $raw_column = null, $fqcn = true) { if (!is_array($set)) { throw new Exception(" no data to set in " . $this->dbTable->table); } $w = array(); $raw_column = explode(',', $raw_column); foreach ($set as $k => $v) { if (!($col = $this->existColumn($k, $fqcn))) { continue; } if ($this->dbTable->validate($k, $v)) { $w[] = " {$col}=" . $this->quoteData($k, $v, in_array($k, $raw_column)); } } $w = implode(',', $w); return $w; }