diff options
author | Lucas Azevedo <lhs_azevedo@hotmail.com> | 2023-09-04 08:02:35 -0300 |
---|---|---|
committer | Lucas Azevedo <lhs_azevedo@hotmail.com> | 2023-09-04 08:02:35 -0300 |
commit | c587f684bd18b2572249d46cd9ffe45e43f9c98f (patch) | |
tree | 54c16a51f8b26ef32ed5107598a15d8e226e78ec /lib/private/Files | |
parent | 5de021cb9aed754191072ffd9b81cac39c5b8f86 (diff) | |
download | nextcloud-server-c587f684bd18b2572249d46cd9ffe45e43f9c98f.tar.gz nextcloud-server-c587f684bd18b2572249d46cd9ffe45e43f9c98f.zip |
Wrap mimetype insert and getLastInsertId in a transaction
Signed-off-by: Lucas Azevedo <lhs_azevedo@hotmail.com>
Diffstat (limited to 'lib/private/Files')
-rw-r--r-- | lib/private/Files/Type/Loader.php | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/private/Files/Type/Loader.php b/lib/private/Files/Type/Loader.php index 7ca1b677fb5..7032e619385 100644 --- a/lib/private/Files/Type/Loader.php +++ b/lib/private/Files/Type/Loader.php @@ -117,13 +117,15 @@ class Loader implements IMimeTypeLoader { */ protected function store($mimetype) { try { - $insert = $this->dbConnection->getQueryBuilder(); - $insert->insert('mimetypes') - ->values([ - 'mimetype' => $insert->createNamedParameter($mimetype) - ]) - ->executeStatement(); - $mimetypeId = $insert->getLastInsertId(); + $mimetypeId = $this->atomic(function () use ($mimetype) { + $insert = $this->dbConnection->getQueryBuilder(); + $insert->insert('mimetypes') + ->values([ + 'mimetype' => $insert->createNamedParameter($mimetype) + ]) + ->executeStatement(); + return $insert->getLastInsertId(); + }, $this->dbConnection); } catch (DbalException $e) { if ($e->getReason() !== DBException::REASON_UNIQUE_CONSTRAINT_VIOLATION) { throw $e; |