Поскольку PDO необходимо знать, в какой объект вы хотите извлечь, вам нужно будет указать его вручную.
Но если вы просто хотите использовать объект для извлечения данных, а не массив, и вам все равно, если это не животный объект, вы можете использовать анонимные объекты по умолчанию, когда вы устанавливаете атрибут после строки подключения, что может быть сделано в упакованный конструктор
$connection = new PDO($connection_string);
//PDO::FETCH_OBJ: returns an anonymous object with property names that correspond to the column names returned in your result set
$connection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
Тогда все запросы будут возвращать объекты. Хотя это не совсем то, что вы хотите, чтобы его закрыть.
Вы также можете добавить данные в свой класс животных:
while($dataObj = ...) {
$animal = new Animal($dataObj);
}
Если вы посмотрите на функцию запроса, можно изменить некоторые параметры, передав дополнительные параметры:
http://www.php.net/manual/en/pdo.query.php
Я не проверял это, но похоже, что он приближает вас к тому, что вы хотите