Вы можете использовать
$q->fetchOne()
для извлечения одной записи (объекта) или
$q->excute()
для извлечения группы объектов.
Я лично использую эти почтикаждый раз, когда я использую Symfony.иногда вам нужно выбрать массивы, в этом случае вы можете использовать гидратацию данных, например HYDRATE_ARRAY или HYDRATE_ARRAY_HIERARCHY, если у вас есть вложенный набор.
Что касается необработанных запросов, проверьте это: raw sql в доктрине
Редактировать:
Мне просто нужно было использовать необработанные запросы, и вот как это работает в Symfony:
$pdo = Doctrine_Manager::getInstance()->getCurrentConnection()->getDbh();
$query = "SELECT name, slug,
( 3959 * acos( cos( radians(:lat) ) * cos( radians( lat ) )
* cos( radians( lng ) - radians(:lng) ) + sin( radians(:lat) )
* sin( radians( lat ) ) ) ) AS distance
FROM rss_city WHERE (lat <> :lat and lng <> :lng)HAVING distance IS NOT NULL
ORDER BY distance LIMIT 5";
$stmt = $pdo->prepare($query);
$params = array(
"lat" => $lat,
"lng" => $lng
);
$stmt->execute($params);
$results = $stmt->fetchAll();
Этот запрос возвращает массивиз 5 ближайших городов к нашим координатам широта / долгота.Я думаю, это говорит само за себя.