diff --git a/src/Abstract/Model/Connection.php b/src/Abstract/Model/Connection.php index 70aea8bc..9f400469 100644 --- a/src/Abstract/Model/Connection.php +++ b/src/Abstract/Model/Connection.php @@ -239,17 +239,9 @@ abstract class Connection implements \Yggverse\Yoda\Interface\Model\Connection string $request ): ?object { - if ($cache = $this->_database->findCache($request)) - { - if (empty($cache[0])) - { - throw new \Exception; - } - - return $cache[0]; - } - - return null; + return $this->_database->getCache( + $request + ); } public function cache( diff --git a/src/Model/Database.php b/src/Model/Database.php index 212f9b57..b433880f 100644 --- a/src/Model/Database.php +++ b/src/Model/Database.php @@ -132,35 +132,27 @@ class Database ); } - public function findCache( - string $request = '', - int $start = 0, - int $limit = 1000 - ): array + public function getCache( + string $request = '' + ): ?object { $query = $this->_connection->prepare( - sprintf( - 'SELECT * FROM `cache` - WHERE `request` LIKE :request - ORDER BY `id` DESC - LIMIT %d,%d', - $start, - $limit - ) + 'SELECT * FROM `cache` WHERE `request` LIKE :request LIMIT 1' ); $query->execute( [ - ':request' => sprintf( - '%%%s%%', - $request - ) + ':request' => $request ] ); - return $query->fetchAll(); - } + if ($cache = $query->fetch()) + { + return $cache; + } + return null; + } public function deleteCache( int $id