diff options
author | Lucas Azevedo <lhs_azevedo@hotmail.com> | 2023-09-04 08:02:35 -0300 |
---|---|---|
committer | backportbot-nextcloud[bot] <backportbot-nextcloud[bot]@users.noreply.github.com> | 2023-09-16 19:31:27 +0000 |
commit | cfae699d6e682a57f6ab5dce436ddb3e8bed6ea0 (patch) | |
tree | abda8fd7ad2f8e6950f39aa266febc4fbbca8f39 /lib/private/Files | |
parent | f0a1716bb59b19d7cbc1d497682b9734039d348d (diff) | |
download | nextcloud-server-cfae699d6e682a57f6ab5dce436ddb3e8bed6ea0.tar.gz nextcloud-server-cfae699d6e682a57f6ab5dce436ddb3e8bed6ea0.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; |