From 1b08b7c726e29ae9d7b9db2c8e2450fd751b9ab7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Fri, 6 Mar 2015 15:32:58 +0100 Subject: [PATCH] use insertIfNotExist() in cache put --- lib/private/files/cache/cache.php | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/private/files/cache/cache.php b/lib/private/files/cache/cache.php index 1f30382e10..62c32ce659 100644 --- a/lib/private/files/cache/cache.php +++ b/lib/private/files/cache/cache.php @@ -243,13 +243,19 @@ class Cache { list($queryParts, $params) = $this->buildParts($data); $queryParts[] = '`storage`'; $params[] = $this->getNumericStorageId(); - $valuesPlaceholder = array_fill(0, count($queryParts), '?'); - $sql = 'INSERT INTO `*PREFIX*filecache` (' . implode(', ', $queryParts) . ')' - . ' VALUES (' . implode(', ', $valuesPlaceholder) . ')'; - \OC_DB::executeAudited($sql, $params); + $params = array_map(function($item) { + return trim($item, "`"); + }, $params); + $queryParts = array_map(function($item) { + return trim($item, "`"); + }, $queryParts); + $values = array_combine($queryParts, $params); + if (\OC::$server->getDatabaseConnection()->insertIfNotExist('*PREFIX*filecache', $values)) { + return (int)\OC_DB::insertid('*PREFIX*filecache'); + } - return (int)\OC_DB::insertid('*PREFIX*filecache'); + return $this->getId($file); } }