Compare commits

..

2 Commits

Author SHA1 Message Date
Lewis Dale
e2cf30a307 Actually fix the query and caching 2023-08-27 22:01:43 +01:00
Lewis Dale
a9e8b61e0b More logging for broken query 2023-08-27 21:47:16 +01:00
2 changed files with 11 additions and 11 deletions

View File

@ -25,7 +25,7 @@ try {
header("Cache-Control: max-age=86400, public"); header("Cache-Control: max-age=86400, public");
echo $image; echo $image;
} catch (\Exception $e) { } catch (\Exception $e) {
$logger->error($e->getMessage()); $logger->error($e->getMessage(), ['exception' => $e, 'path' => $imgPath, 'params' => $params]);
http_response_code(500); http_response_code(500);
echo "Internal Server Error"; echo "Internal Server Error";
} }

View File

@ -27,21 +27,21 @@ class SqliteImageDb implements ImageDb {
} }
public function findImage(string $path, ResizeParams $params): Image | null { public function findImage(string $path, ResizeParams $params): Image | null {
$query = "SELECT * FROM images WHERE path = :path"; $query = 'SELECT * FROM images WHERE path = :path';
$query .= $params->width ? " AND width = :width" : " AND width IS NULL"; $query .= $params->width ? ' AND width = :width' : ' AND width IS NULL';
$query .= $params->height ? " AND height = :height" : " AND height IS NULL"; $query .= $params->height ? ' AND height = :height' : ' AND height IS NULL';
$query .= $params->quality ? " AND quality = :quality" : " AND quality IS NULL"; $query .= $params->quality ? ' AND quality = :quality' : ' AND quality IS NULL';
$stmt = $this->db->prepare($query); $stmt = $this->db->prepare($query);
$stmt->execute([ $stmt->bindParam(':path', $path);
':path' => $path, if ($params->width !== null) $stmt->bindParam(':width', $params->width);
':width' => $params->width, if ($params->height !== null) $stmt->bindParam(':height', $params->height);
':height' => $params->height, if ($params->quality !== null) $stmt->bindParam(':quality', $params->quality);
':quality' => $params->quality
]);
$this->logger->info("Querying images", ['query' => $stmt->queryString]); $this->logger->info("Querying images", ['query' => $stmt->queryString]);
$stmt->execute();
$result = $stmt->fetchObject(); $result = $stmt->fetchObject();
return $result ? Image::fromString(base64_decode($result->content)) : null; return $result ? Image::fromString(base64_decode($result->content)) : null;