diff options
Diffstat (limited to 'app/Models')
| -rw-r--r-- | app/Models/TagDAO.php | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/app/Models/TagDAO.php b/app/Models/TagDAO.php index 05a88b182..854dc07f2 100644 --- a/app/Models/TagDAO.php +++ b/app/Models/TagDAO.php @@ -148,6 +148,28 @@ class FreshRSS_TagDAO extends Minz_ModelPdo implements FreshRSS_Searchable { } } + public function updateEntryTag($oldTagId, $newTagId) { + $sql = 'DELETE FROM `_entrytag` WHERE EXISTS (SELECT 1 FROM `_entrytag` AS e WHERE e.id_entry = `_entrytag`.id_entry AND e.id_tag = ? AND `_entrytag`.id_tag = ?)'; + $stm = $this->pdo->prepare($sql); + + if (!($stm && $stm->execute([$newTagId, $oldTagId]))) { + $info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo(); + Minz_Log::error('SQL error moveTag: ' . $info[2]); + return false; + } + + $sql = 'UPDATE `_entrytag` SET id_tag = ? WHERE id_tag = ?'; + $stm = $this->pdo->prepare($sql); + + if ($stm && $stm->execute([$newTagId, $oldTagId])) { + return $stm->rowCount(); + } else { + $info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo(); + Minz_Log::error('SQL error moveTag: ' . $info[2]); + return false; + } + } + public function searchById($id) { $sql = 'SELECT * FROM `_tag` WHERE id=?'; $stm = $this->pdo->prepare($sql); |
