insertIfNotExists() for storage insertion

remotes/origin/etag-endpoint
Joas Schilling 11 years ago committed by Thomas Müller
parent c917ea183c
commit 940163e16b
  1. 12
      lib/private/files/cache/storage.php

@ -35,9 +35,15 @@ class Storage {
if ($row = $result->fetchRow()) {
$this->numericId = $row['numeric_id'];
} else {
$sql = 'INSERT INTO `*PREFIX*storages` (`id`) VALUES(?)';
\OC_DB::executeAudited($sql, array($this->storageId));
$this->numericId = \OC_DB::insertid('*PREFIX*storages');
$connection = \OC_DB::getConnection();
if ($connection->insertIfNotExist('*PREFIX*storages', ['id' => $this->storageId])) {
$this->numericId = \OC_DB::insertid('*PREFIX*storages');
} else {
$result = \OC_DB::executeAudited($sql, array($this->storageId));
if ($row = $result->fetchRow()) {
$this->numericId = $row['numeric_id'];
}
}
}
}

Loading…
Cancel
Save