diff options
-rw-r--r-- | lib/repair/repairmimetypes.php | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/repair/repairmimetypes.php b/lib/repair/repairmimetypes.php index 1b36894eed8..fa6aa1130d6 100644 --- a/lib/repair/repairmimetypes.php +++ b/lib/repair/repairmimetypes.php @@ -76,11 +76,8 @@ class RepairMimeTypes extends BasicEmitter implements \OC\RepairStep { private static function updateByNameStmt() { return \OC_DB::prepare(' UPDATE `*PREFIX*filecache` - SET `mimetype` = ( - SELECT `id` - FROM `*PREFIX*mimetypes` - WHERE `mimetype` = ? - ) WHERE `name` ILIKE ? + SET `mimetype` = ? + WHERE `mimetype` <> ? AND `name` ILIKE ? '); } @@ -122,9 +119,13 @@ class RepairMimeTypes extends BasicEmitter implements \OC\RepairStep { // insert mimetype \OC_DB::executeAudited(self::insertStmt(), array($mimetype)); } + + // get target mimetype id + $result = \OC_DB::executeAudited(self::getIdStmt(), array($mimetype)); + $mimetypeId = $result->fetchOne(); // change mimetype for files with x extension - \OC_DB::executeAudited(self::updateByNameStmt(), array($mimetype, '%.' . $extension)); + \OC_DB::executeAudited(self::updateByNameStmt(), array($mimetypeId, $mimetypeId, '%.' . $extension)); } } |