Porque no separas de la clase Cart el acceso a la base de datos? o en su caso agrega metodos para cerrar la conexion y volver a crearla, algo asi:
Código PHP:
class Cart {
public function __sleep() {
$this->dbh->close();
$this->dbh = null;
}
public function __wakeup() {
$this->dbh = new PDO();
}
}
Saludos.