Wykonanie zapytanie w PDO, zwraca obiekt PDOStatement, bezpośrednio nie możesz przecież i tak wyświetlić tych danych, do tego używasz jednej z metody PDOStatement: fetch, fetchAll. W ten sposób otrzymujesz wynik w postaci tablicy, którą dalej możesz już serializować. Zamiast robić tego tak:
Kod
<?php
$query = $pdo->query('SELECT * FROM tabela ORDER BY id DESC');
$cache = serialize($query);
spróbuj zrobić to tak:
Kod
<?php
$query = $pdo->query('SELECT * FROM tabela ORDER BY id DESC');
$cache = serialize($query->fetchAll());