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");
echo $image;
} catch (\Exception $e) {
$logger->error($e->getMessage());
$logger->error($e->getMessage(), ['exception' => $e, 'path' => $imgPath, 'params' => $params]);
http_response_code(500);
echo "Internal Server Error";
}

View File

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