public function saveTags(News $news) { $this->deleteTags($news->id()); if (str_replace(' ', '', $news->tags()) == '') { return; } $query = 'INSERT INTO T_NEW_tagc (NTC_name) SELECT name FROM ('; foreach ($news->tagsArray() as $key => $tag) { $query .= ($key === 0 ? '' : ' UNION ') . 'SELECT ' . $this->dao->quote($tag) . ' AS name'; } $query .= ') AS A LEFT OUTER JOIN T_NEW_tagc AS B ON A.name = B.NTC_name WHERE B.NTC_id IS NULL'; //echo $query; // var_dump($query); $this->dao->exec($query); $requete = 'INSERT INTO t_new_tagd (NTD_fk_NNC, NTD_fk_NTC) SELECT ' . (int) $news->id() . ', NTC_id FROM T_NEW_tagc WHERE NTC_name IN('; foreach ($news->tagsArray() as $key => $tag) { $requete .= ($key === 0 ? '' : ',') . $this->dao->quote($tag); } $this->dao->exec($requete . ');'); }