Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/private/Files/Type/Loader.php')
-rw-r--r--lib/private/Files/Type/Loader.php21
1 files changed, 7 insertions, 14 deletions
diff --git a/lib/private/Files/Type/Loader.php b/lib/private/Files/Type/Loader.php
index 2b15c9b6e13..41c561dcd22 100644
--- a/lib/private/Files/Type/Loader.php
+++ b/lib/private/Files/Type/Loader.php
@@ -114,20 +114,9 @@ class Loader implements IMimeTypeLoader {
* @param int inserted ID
*/
protected function store($mimetype) {
- try {
- $qb = $this->dbConnection->getQueryBuilder();
- $qb->insert('mimetypes')
- ->values([
- 'mimetype' => $qb->createNamedParameter($mimetype)
- ]);
- $qb->execute();
- } catch (UniqueConstraintViolationException $e) {
- if ($this->dbConnection->inTransaction()) {
- // if we're inside a transaction we can't recover safely
- throw $e;
- }
- // something inserted it before us
- }
+ $this->dbConnection->insertIfNotExist('*PREFIX*mimetypes', [
+ 'mimetype' => $mimetype
+ ]);
$fetch = $this->dbConnection->getQueryBuilder();
$fetch->select('id')
@@ -137,6 +126,10 @@ class Loader implements IMimeTypeLoader {
));
$row = $fetch->execute()->fetch();
+ if (!$row) {
+ throw new \Exception("Failed to get mimetype id for $mimetype after trying to store it");
+ }
+
$this->mimetypes[$row['id']] = $mimetype;
$this->mimetypeIds[$mimetype] = $row['id'];
return $row['id'];