prepare("SELECT data FROM sessions WHERE id = ? AND updated_at > DATE_SUB(NOW(), INTERVAL " . self::TTL . " SECOND)"); $stmt->execute([$id]); $row = $stmt->fetch(); return $row ? $row['data'] : ''; } public function write($id, $data): bool { db()->prepare("INSERT INTO sessions (id, data) VALUES (?, ?) ON DUPLICATE KEY UPDATE data = VALUES(data), updated_at = NOW()") ->execute([$id, $data]); return true; } public function destroy($id): bool { db()->prepare("DELETE FROM sessions WHERE id = ?")->execute([$id]); return true; } public function gc($max_lifetime): int { $stmt = db()->prepare("DELETE FROM sessions WHERE updated_at < DATE_SUB(NOW(), INTERVAL ? SECOND)"); $stmt->execute([self::TTL]); return (int)$stmt->rowCount(); } }